JDBC数据库访问技术资料课件

上传人:我*** 文档编号:142099289 上传时间:2020-08-16 格式:PPT 页数:38 大小:221.50KB
返回 下载 相关 举报
JDBC数据库访问技术资料课件_第1页
第1页 / 共38页
JDBC数据库访问技术资料课件_第2页
第2页 / 共38页
JDBC数据库访问技术资料课件_第3页
第3页 / 共38页
JDBC数据库访问技术资料课件_第4页
第4页 / 共38页
JDBC数据库访问技术资料课件_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《JDBC数据库访问技术资料课件》由会员分享,可在线阅读,更多相关《JDBC数据库访问技术资料课件(38页珍藏版)》请在金锄头文库上搜索。

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

2、层接口。,JDBC概述,JDBC的功能 连接到数据库 执行SQL语句,查询数据库 产生查询结果 执行更新、插入和删除动作 执行存储过程,JDBC概述,使用JDBC的好处 开发人员只需要了解一组API,就可以访问任何关系数据库。 不必为不同的数据库重新编写代码。 不必了解数据库供应商的特定API。 提供了标准API,而且独立于供应商。 几乎每个数据库供应商都具有几种JDBC驱动。 JDBC是标准Java 2平台的一部分。,JDBC结构,JDBC由两部分组成 JDBC API,一个纯粹的基于Java的API,它支持Java应用到JDBC驱动管理器的通信。 JDBC驱动管理器,它负责与某些数据库驱动

3、进行通信,某些数据库驱动负责与具体的数据库进行通信。,JDBC结构,JDBC数据库驱动 Java和JDBC提供了访问SQL DBMS数据库的映射,所以JDBC驱动可以应用于大多数主流数据库。 JDBC数据库驱动具有四种类型:JDBC-ODBC桥驱动、部分Java驱动、中间件驱动和纯Java驱动。,JDBC结构,JDBC-ODBC桥驱动 这是最基本的驱动,在这里JDBC连接到ODBC,ODBC再连接到数据库。 JDBC-ODBC桥把Java程序中的JDBC方法转换成ODBC的功能。,JDBC结构,部分Java驱动 在这种类型的数据库驱动中,JDBC连接到数据库中。只有具备访问计算机完全安全性的J

4、ava程序才能使用这种类型的驱动(applet不能用)。,JDBC结构,中间件驱动 在这种驱动中,JDBC连接到中间件,然后中间件连接到数据库上。,JDBC结构,纯Java驱动 这种类型驱动直接把JDBC调用转化为DBMS使用的网络协议,允许从客户机上直接调用DBMS服务器。 推荐在服务端Java开发中使用这种驱动,这就是“瘦”驱动。,JDBC结构,JDBC API(分成两个程序包) Java.sql核心API,这是Java2标准版的一部分。提供对数据库更新、插入和删除的类和接口。 Javax.sql可选扩展API,这是Java2企业版的一部分。这部分API包含了基于Java命名和目录接口(J

5、NDI)的资源,以及管理连接池、分布式事务和数据行集的类。,JDBC结构,JDBC应用结构示意图,使用JDBC访问数据库的基本步骤,1.加载一个JDBC驱动。 2.定义一个URL连接。 3.建立这个连接。 4.建立一个SQL查询语句的对象。 5.执行这个SQL查询语句。 6.处理查询结果集。 7.关闭连接。,JDBC类与接口,Java.sql.Driver接口 可以通过驱动进行数据库访问,驱动都是某一个特定的数据库驱动的实现。连接到数据库的应用程序要求具备该数据库的特定驱动。 DBMS供应商通常提供了相应的驱动,任何驱动必须实现Driver接口。 驱动在应用程序中处理JDBC语句,并把它们包含

6、的SQL参数发送给数据库引擎。,JDBC类与接口,定义JDBC驱动(Driver) Driver的定义是非常简单的,Driver要给出要用到的class name。 如果要使用JDBC-ODBC桥驱动,定义是这样的: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 在使用Class.forName之前,应先导入import语句。import java.sql.* ; 如果使用JDBC Driver,是这样定义的: Class.forName(“jdbc.driver_class_name”); 连接Oracle Jdbc驱动: Class.forN

7、ame(“oracle.jdbc.driver.OracleDriver”); 连接mySQL Jdbc驱动: Class.forName(“org.git.mm.mysql.Driver”);,JDBC类与接口,定义数据库URL 数据库URL,是指一个完全合格的数据库连接名称,该名称标识所要连接的数据库和数据库连接程序。 要创建一个连接对象实例,必须以数据库URL作为参数去激发DriverManager类的getConnection()方法。,JDBC类与接口,数据库URL字符串表示: JDBC:PROTOCOL:NAME JDBC是指对所有的JDBC数据库URL中所用的数据库驱动程序类型的

8、关键字。 PROTOCOL是指用户要连接的数据库类型。 NAME提供建立连接时所需要的数据库类型的额外信息。,JDBC类与接口,Java.sql.DriverManager类 DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。 DriverManager类跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。 另外, DriverManager类也可处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。,JDBC类与接口,Java.sql.DriverManager类的方法 当DriverManager激发getConnection()方法时,DriverMan

9、ager类首先从它已加载的驱动程序池中找到一个可以接受该数据库URL的驱动程序,然后请求该驱动程序使用相关的数据库URL去连接到数据库中。于是, getConnection()方法建立了与数据库的连接。 JDBC允许用户使用调用DriverManager的方法getDriver()、getDrivers()、registerDriver()及Driver的connect(),JDBC类与接口,getConnection()方法 返回一个连接对象。 getConnection()方法的三种形式: getConnection(String url) 只是简单地给定数据库url,然后尝试连接。 ge

10、tConnection(String url,String User,String Password) 给定数据库url、数据库的用户名、数据库的用户使用密码,然后尝试连接。 getConnection(String url,java.util.Properties information) 给定数据库的url以及一个属性集合作为参数,然后尝试连接。,JDBC类与接口,Connection接口 Connection接口表示到数据库的连接,也就是在已经加载的Driver和数据库之间建立连接,它定义了和数据库的大部分交互 。 必须创建一个Connection class的实例,其中包括数据库的信息

11、。 连接过程包括所执行的SQL语句和在该连接上所返回的结果。 一个应用程序可与单个数据库有一个或多个连接,或者可与许多数据库有连接。,JDBC类与接口,在编程中,连接可以使用DriverManager.getConnection()来获得,也可以使用数据源的DataSource.getConnection()来获得。 在默认情况下,Connection对象使用auto-commit的事务模式,这意味着当执行每个SQL语句后它自动提交结果。如果不是使用auto-commit的事务模式,那么在编程中要明确调用commit()方法来执行生效,否则数据库的改变将不会被保存。,JDBC类与接口,Stat

12、ement接口 Statement用于执行SQL语句,返回结果。 在默认情况下,一个Statement只能打开一个ResultSet对象。 如果一个结果集和另一个结果集存在交叉读取的情况,那么需要使用两个Statement来产生这些ResultSet。,JDBC类与接口,Statement中的每个执行方法(Execute)都自动关闭当前的ResultSet对象。 Statement对象用于将SQL语句发送到数据库中。 实际上有三种Statement对象,它们都作为在给定连接上执行SQL语句的包容器:Statement、PreparedStatement、CallableStatement。,J

13、DBC类与接口,当打开一个数据库的连接后,Java应用程序通常通过创建与执行一系列的SQL语句命令来实际使用该连接。这些SQL命令作为数据库的语句执行,完成一些操作。 JDBC支持三种类型语句: Statement:用来立即执行SQL语句。 PreparedStatement:用来执行编译后的SQL语句。 CallableStatement:用来执行存储过程。,JDBC类与接口,Statement对象 用来执行静态SQL语句,并获得它的处理结果。 可使用Connection对象中的createStatement()方法创建Statement对象,然后通过调用适当的方法来执行它。 对于SELEC

14、T语句使用的方法是:executeQuery() 对于UPDATE、DELETE或DDL等语句使用executeUpdate()方法。,JDBC类与接口,PreparedStatement对象 该对象用来预编译SQL语句,可以把SQL语句预编译并存储在PreparedStatement对象中,然后这个对象可以用来多次高效执行SQL语句。 PreparedStatement接口扩展了Statement接口,PreparedStatement提供了对IN参数的支持,IN参数就是在创建SQL语句的时候,没有指定具体值的参数。,JDBC类与接口,用?表示的参数标记可以用来指定输入值。 Prepared

15、Statement引进了一系列的setXXX()方法,用来设置特定参数的值。XXX代表了数据类型。 对于SELECT语句使用的方法是:executeQuery() 对于UPDATE、DELETE或DDL等语句使用executeUpdate()方法。,JDBC类与接口,CallableStatement对象 该接口扩展了PreparedStatement接口,可以使用存储过程。 它包含了执行和从存储过程中得到结果的方法。 该对象有Connection对象创建,要获得CallableStatement对象,可以调用Connection对象的prepareCall()方法。,JDBC类与接口,它最多

16、可以提供三种类型的参数:IN、OUT和INOUT。 任何输入参数必须使用setXXX()方法指定。 任何输出参数必须用registerOutParameter()方法注册它们的数据类型。 一旦设置了全部参数,可以调用CallableStatement的execute()方法。 执行存储过程后,可以使用getXXX()方法从输出参数中得到值。,JDBC类与接口,ResultSet 结果集代表执行查询后的记录,它以表的形式存在。 ResultSet通常由Statement执行数据查询而获得。 ResultSet对象维持结果集的当前指针,通常指向第一行的前一个位置。 默认情况下,ResultSet对象是不可更新的,并且指针只能往后移动。,JDBC类与接口,方法getXXX()提供了获取当前行中某列值的途径。 列名或列号可用于标识要从中获取数据的列。例如:getString(“name”)、getString(2) 当Statement关闭时,ResultSet对象自动关闭。,JDBC的数据类型,处理SQL例外,JDBC提供了下列异常类型: SQLException SQLWarning D

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号