JDBC(创建数据库连接)_第1页
JDBC(创建数据库连接)_第2页
JDBC(创建数据库连接)_第3页
JDBC(创建数据库连接)_第4页
JDBC(创建数据库连接)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JDBC课程1开篇JDBC之旅学习时间: 共2天(第一天)学习内容:JDBC常用特性 事务 并发控制(扩展) 2常用的数据库接口?jdbc&odbc是最常用的数据库操作接口ODBC(ODBCOpen Database Connectivity开放式数据库连接),由Microsoft 提供的建立一个桥梁。ODBC(规范)来实现,但是不能通用。必须安装本地的驱动。注册一下,仅限于微软。JDBC(Java 数据库连接)sun公司提供java 访问数据库的一种方法。3了解JDBC APIJava.sql中的主要接口:接口名 说明 Driver 与数据库厂商一同开发的一些接口(由它注册一个驱动程序)Dr

2、iverManager此类用于加载和卸载各种驱动程序并建立与数据库的连接Connection此接口表示与数据的连接ResultSet此接口表示了查询出来的数据库数据结果集PreparedStatement此接口用于执行预编译的 SQL 语句 Statement此接口用于执行 SQL 语句并将数据检索到 ResultSet 中 CallableStatementCallableStatement 为所有的 DBMS 提供了一种以标准形式调用已储存过程的方法4创建一个基本的JDBC应用的步骤注册一个驱动与数据库建立一个连接创建一个Statement执行sql处理结果集(如果是查询)释放资源。(Co

3、nnection、Statement、ResultSet)5使用JDBC连接数据库注册Class.forName(com.mysql.jdbc.Driver);取得连接Connection conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/test,“root,“admin);创建StatementStatement stmt = conn.createStatement();执行取得结果集(查询)ResultSet rs = stmt.executeQuery(select * from t_user);Stateme

4、nt对象不为空说明取得连接成功!(大家试试)先看一个MySQL jdbc连接数据库实例6注册驱动Class.forName(“驱动类型”)MySQL的驱动类型是由“com.mysql.jdbc.Driver”字符串指向的一个驱动程序,该文件在MySQL提供的mysql-connector-java-5.0.4-bin.jar包中。注:Class类是容器在执行*.class时自动默认导入java.lang包中,所有可以直接用。看下api中class.forName方法的定义.7获取DB 连接java.sql中Connection&DriverManager两个类联合取得数据库的一个连接Drive

5、rManager.getConnection(“*”,”*”,”*”)方法中三个String类型的参数url格式的数据库连接地址及方式=参数值2.访问数据库的用户名=参数值2.访问数据库的密码参数值2.8URLjdbc:mysql:localhost:3306:testjdbc:表示采用jdbc方式连接数据库 mysql:表示连接的是mysql数据库 表示地址 3306和test表示端口和数据库名 localhost:3306:test整个是一块jdbc:mysql:/host:port,host:port./database?参数名1=参数值1&参数名2=参数值2.9数据库建立连接异常10设

6、置Connection的事务级别Connection connection = DriverManager.getConnection();connection.setTransactionIsolation();支持的事务级别:1.JDBC在Connection中定义的事务级别有下面几个:TRANSACTION_READ_UNCOMMITTED 0TRANSACTION_READ_COMMITTED 2 TRANSACTION_REPEATABLE_READ 4 TRANSACTION_SERIALIZABLE 8课后思考:测试事务隔离级别11创建一个StatementStatement s

7、tatement = db.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);第一个参数指定 ResultSet 的类型:TYPE_FORWARD_ONLY:缺省类型,只允许向前访问一次,并且不会受到其他用户对该数据库所作更改的影响。 TYPE_SCROLL_INSENSITIVE:允许在列表中向前或向后移动,甚至能够进行特定定位,例如移至列表中的第四个记录或从当前位置向后移动两个记录。不会受到其他用户对该数据库所作更改的影响。 TYPE_SCROLL_SENSITIVE:和TYPE_SCRO

8、LL_INSENSITIVE 相同,允许在记录中定位。这种类型受到其他用户所作更改的影响。假如用户在执行完查询之后删除一个记录,那个记录将从 ResultSet 中消失。类似的,对数据值的更改也将反映在 ResultSet 中。第二个参数配置 ResultSet 的并发性,该参数确定是否能够更新 ResultSet。其选项有:CONCUR_READ_ONLY:这是缺省值,指定不能够更新 ResultSet 。CONCUR_UPDATABLE:指定能够更新 ResultSet。12PreparedStatement对SQL语句预编译,减低数据库引擎对SQL的解析和生成优化方案一条语句和一个DB

9、Connection关联解决SQL注入的漏洞外部应用程序数据库JDBC编译sql语句编译sql语句可反复传递参数执行该语句PrepareStatementStatement执行该语句后该语句几乎不能被复用数据库共享池Select*from t_userwhere username=?Select*from t_userwhere username=wxz其中保存了一定的编译后的sql等待复用,池中装满后自动溢出13元数据MetadataDatabaseMetaData1、 数据库与用户,数据库标识符以及函数与存储过程 2、 数据库限制3、 数据库支持不支持的功能4、 架构、编目、表、列和视图等ResultSetMetaData见案例14事务(Transaction)保证一系列操作一起操作完成(全部成功或者全部失败)比如银行操作。如何使用事务:调用Connection.setAutoCommit(false);由连接控制的执行一步或多步数据库操作通过调用commit()进行提交通过调用rollback进行回滚15批量提交语法:Statement stm = con.createStatement();Stm.addBatch(sqlStri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论