JDBC数据库访问技术_第1页
JDBC数据库访问技术_第2页
JDBC数据库访问技术_第3页
JDBC数据库访问技术_第4页
JDBC数据库访问技术_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

JDBC数据库访问技术

JDBC概述JDBC结构使用JDBC访问数据库的基本步骤JDBC类与接口JDBC的数据类型处理SQL例外一个连接数据库的例子JDBC概述什么是JDBCJDBC(JavaDatabaseConnectivity),就是一个数据库连接JavaAPI,属于JavaAPI的一部分。JDBC为Java开发人员提供了一个行业标准API,它可以在Java应用(applet、servlet、jsp、EJB等等)同大量关系数据库之间建立起独立于数据库的连接,如Oracle、Informix、SQLServer和Sybase等关系数据库。API提供了数据库调用层接口。

JDBC概述JDBC的功能连接到数据库执行SQL语句,查询数据库产生查询结果执行更新、插入和删除动作执行存储过程JDBC概述使用JDBC的好处开发人员只需要了解一组API,就可以访问任何关系数据库。不必为不同的数据库重新编写代码。不必了解数据库供应商的特定API。提供了标准API,而且独立于供应商。几乎每个数据库供应商都具有几种JDBC驱动。JDBC是标准Java2平台的一部分。JDBC结构JDBC由两部分组成JDBCAPI,一个纯粹的基于Java的API,它支持Java应用到JDBC驱动管理器的通信。JDBC驱动管理器,它负责与某些数据库驱动进行通信,某些数据库驱动负责与具体的数据库进行通信。JDBC结构JDBC数据库驱动Java和JDBC提供了访问SQLDBMS数据库的映射,所以JDBC驱动可以应用于大多数主流数据库。JDBC数据库驱动具有四种类型:JDBC-ODBC桥驱动、部分Java驱动、中间件驱动和纯Java驱动。JDBC结构JDBC-ODBC桥驱动这是最基本的驱动,在这里JDBC连接到ODBC,ODBC再连接到数据库。JDBC-ODBC桥把Java程序中的JDBC方法转换成ODBC的功能。RDBMSJDBC-ODBC桥驱动ODBC驱动客户端JDBC结构部分Java驱动在这种类型的数据库驱动中,JDBC连接到数据库中。只有具备访问计算机完全安全性的Java程序才能使用这种类型的驱动(applet不能用)。RDBMS部分Java驱动私有API一些JDBC调用客户端JDBC结构中间件驱动在这种驱动中,JDBC连接到中间件,然后中间件连接到数据库上。RDBMS中间件驱动客户端中间件驱动服务器客户端Network网络协议JDBC结构纯Java驱动这种类型驱动直接把JDBC调用转化为DBMS使用的网络协议,允许从客户机上直接调用DBMS服务器。推荐在服务端Java开发中使用这种驱动,这就是“瘦”驱动。RDBMS纯Java驱动私有协议纯Java客户端DBMS网络协议JDBC结构JDBCAPI(分成两个程序包)Java.sql核心API,这是Java2标准版的一部分。提供对数据库更新、插入和删除的类和接口。Javax.sql可选扩展API,这是Java2企业版的一部分。这部分API包含了基于Java命名和目录接口(JNDI)的资源,以及管理连接池、分布式事务和数据行集的类。JDBC结构JDBC应用结构示意图使用JDBC访问数据库的基本步骤1.加载一个JDBC驱动。2.定义一个URL连接。3.建立这个连接。4.建立一个SQL查询语句的对象。5.执行这个SQL查询语句。6.处理查询结果集。7.关闭连接。JDBC类与接口Java.sql.Driver接口可以通过驱动进行数据库访问,驱动都是某一个特定的数据库驱动的实现。连接到数据库的应用程序要求具备该数据库的特定驱动。DBMS供应商通常提供了相应的驱动,任何驱动必须实现Driver接口。驱动在应用程序中处理JDBC语句,并把它们包含的SQL参数发送给数据库引擎。JDBC类与接口定义JDBC驱动(Driver)Driver的定义是非常简单的,Driver要给出要用到的classname。如果要使用JDBC-ODBC桥驱动,定义是这样的:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);在使用Class.forName之前,应先导入import语句。importjava.sql.*;如果使用JDBCDriver,是这样定义的:Class.forName(“jdbc.driver_class_name”);连接OracleJdbc驱动:Class.forName(“oracle.jdbc.driver.OracleDriver”);连接mySQLJdbc驱动:Class.forName(“org.git.mm.mysql.Driver”);JDBC类与接口定义数据库URL数据库URL,是指一个完全合格的数据库连接名称,该名称标识所要连接的数据库和数据库连接程序。要创建一个连接对象实例,必须以数据库URL作为参数去激发DriverManager类的getConnection()方法。JDBC类与接口数据库URL字符串表示:JDBC:PROTOCOL:NAMEJDBC是指对所有的JDBC数据库URL中所用的数据库驱动程序类型的关键字。PROTOCOL是指用户要连接的数据库类型。NAME提供建立连接时所需要的数据库类型的额外信息。JDBC类与接口Java.sql.DriverManager类DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。DriverManager类跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager类也可处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。JDBC类与接口Java.sql.DriverManager类的方法当DriverManager激发getConnection()方法时,DriverManager类首先从它已加载的驱动程序池中找到一个可以接受该数据库URL的驱动程序,然后请求该驱动程序使用相关的数据库URL去连接到数据库中。于是,getConnection()方法建立了与数据库的连接。JDBC允许用户使用调用DriverManager的方法getDriver()、getDrivers()、registerDriver()及Driver的connect()JDBC类与接口getConnection()方法返回一个连接对象。getConnection()方法的三种形式:getConnection(Stringurl)只是简单地给定数据库url,然后尝试连接。getConnection(Stringurl,StringUser,StringPassword)给定数据库url、数据库的用户名、数据库的用户使用密码,然后尝试连接。getConnection(Stringurl,java.util.Propertiesinformation)给定数据库的url以及一个属性集合作为参数,然后尝试连接。JDBC类与接口Connection接口Connection接口表示到数据库的连接,也就是在已经加载的Driver和数据库之间建立连接,它定义了和数据库的大部分交互。必须创建一个Connectionclass的实例,其中包括数据库的信息。连接过程包括所执行的SQL语句和在该连接上所返回的结果。一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。JDBC类与接口在编程中,连接可以使用DriverManager.getConnection()来获得,也可以使用数据源的DataSource.getConnection()来获得。在默认情况下,Connection对象使用auto-commit的事务模式,这意味着当执行每个SQL语句后它自动提交结果。如果不是使用auto-commit的事务模式,那么在编程中要明确调用commit()方法来执行生效,否则数据库的改变将不会被保存。JDBC类与接口Statement接口Statement用于执行SQL语句,返回结果。在默认情况下,一个Statement只能打开一个ResultSet对象。如果一个结果集和另一个结果集存在交叉读取的情况,那么需要使用两个Statement来产生这些ResultSet。JDBC类与接口Statement中的每个执行方法(Execute)都自动关闭当前的ResultSet对象。Statement对象用于将SQL语句发送到数据库中。实际上有三种Statement对象,它们都作为在给定连接上执行SQL语句的包容器:Statement、PreparedStatement、CallableStatement。JDBC类与接口当打开一个数据库的连接后,Java应用程序通常通过创建与执行一系列的SQL语句命令来实际使用该连接。这些SQL命令作为数据库的语句执行,完成一些操作。JDBC支持三种类型语句:Statement:用来立即执行SQL语句。PreparedStatement:用来执行编译后的SQL语句。CallableStatement:用来执行存储过程。JDBC类与接口Statement对象用来执行静态SQL语句,并获得它的处理结果。可使用Connection对象中的createStatement()方法创建Statement对象,然后通过调用适当的方法来执行它。对于SELECT语句使用的方法是:executeQuery()对于UPDATE、DELETE或DDL等语句使用executeUpdate()方法。JDBC类与接口PreparedStatement对象该对象用来预编译SQL语句,可以把SQL语句预编译并存储在PreparedStatement对象中,然后这个对象可以用来多次高效执行SQL语句。PreparedStatement接口扩展了Statement接口,PreparedStatement提供了对IN参数的支持,IN参数就是在创建SQL语句的时候,没有指定具体值的参数。JDBC类与接口用?表示的参数标记可以用来指定输入值。PreparedStatement引进了一系列的setXXX()方法,用来设置特定参数的值。XXX代表了数据类型。对于SELECT语句使用的方法是:executeQuery()对于UPDATE、DELETE或DDL等语句使用executeUpdate()方法。JDBC类与接口CallableStatement对象该接口扩展了PreparedStatement接口,可以使用存储过程。它包含了执行和从存储过程中得到结果的方法。该对象有Connection对象创建,要获得CallableStatement对象,可以调用Connection对象的prepareCall()方法。JDBC类与接口它最多可以提供三种类型的参数:IN、OUT和INOUT。任何输入参数必须使用setXXX()方法指定。任何输出参数必须用registerOutParameter()方法注册它们的数据类型。一旦设置了全部参数,可以调用CallableStatement的execute()方法。执行存储过程后,可以使用getXXX()方法从输出参数中得到值。JDBC类与接口ResultSet结果集代表执行查询后的记录,它以表的形式存在。ResultSet通常由Statement执行数据查询而获得。ResultSet对象维持结果集的当前指针,通常指向第一行的前一个位置。默认情况下,Result

温馨提示

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

评论

0/150

提交评论