Java程序的设计-第10章-数据库访问编程技术课件.ppt
《Java程序的设计-第10章-数据库访问编程技术课件.ppt》由会员分享,可在线阅读,更多相关《Java程序的设计-第10章-数据库访问编程技术课件.ppt(64页珍藏版)》请在三一办公上搜索。
1、第10章,数据库访问的编程技术,第10章 数据库访问的编程技术,在开发企业级业务应用系统的过程中,需要使用数据库管理系统来存储、管理企业的业务数据。JDBC为在Java中开发数据库应用程序提供了良好的工具,掌握JDBC能够使得开发人员方便快捷地编写数据库应用程序。,10.1 JDBC概述,10.1 JDBC概述,10.1 JDBC概述,JDBC(Java DataBase Connectivity,Java数据库连接) 是一种可用于执行SQL语句的Java API,它为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以方便地将各种SQL语句传送到任何关系
2、数据库中。JDBC由一些Java语言编写的类和接口组成。用户使用这些类和接口就可以用统一的形式访问各种不同的关系数据库,并开发访问不同厂商数据库的应用程序。,10.1 JDBC概述JDBC(Java DataBase,JDBC的基本结构如图所示。从图中可以看出:顶层是Java应用程序,它既可以是Applet应用程序,也可以是独立运行的Application应用程序,甚至还可以是服务器端运行的Severlet和EJB组件等。其他两层是JDBC接口,分别是面向程序员的JDBC API及面向数据库厂商的JDBC Driver API。,10.1.1 JDBC的基本结构,JDBC的基本结构如图所示。从
3、图中可以看出:顶层是Jav,JDBC的基本结构,JDBC的基本结构,Java应用程序通过JDBC API接口,经由JDBC驱动程序管理器、JDBC Driver API和JDBC驱动程序访问下层的数据库。JDBC API屏蔽了不同的数据库驱动程序之间的差异,使得程序设计人员只能用一个标准的、纯Java的数据库程序设计接口,为在Java中访问任意类型的数据库提供支持。JDBC驱动程序程序管理器为应用程序装载数据库驱动程序,它与具体的数据库有关,用于向数据库提交SQL请求。,Java应用程序通过JDBC API接口,经由JDBC驱动程,数据库驱动程序一般是由生产数据库的厂家提供。不同的厂商为数据库
4、提供不同的驱动程序,从而把访问操作数据库的复杂操作封装在自己的驱动程序中。例如,数据库厂商Oracle为Oracle10数据库提供了不同的驱动程序,但都实现了JDBC接口。对于应用程序开发人员而言,不必关心特定数据库的复杂操作,只需要掌握Java提供的访问数据库的接口,就可以编写访问不同类型的数据库的应用程序。,数据库驱动程序一般是由生产数据库的厂家提供。不同的厂商为数据,10.1.2 JDBC 驱动程序,(1)JDBC-ODBC 桥接器(Bridge)。它负责将JDBC调用转换为ODBC调用,应用程序是通过JDBC调用连接到一个使用ODBC驱动程序的数据库。要求每个客户端都安装上数据库对应的
5、ODBC和JDBC-ODBC Bridge两种驱动程序。(2) 本地API,部分Java驱动程序(Native API, partly Java driver)。它是部分使用Java语言编写和部分使用本机代码编写的驱动程序,它将数据库厂商的特殊协议转换成Java代码及二进制类码,即把客户端的JDBC调用转换为Oracle、Sybase、DB2或其他DBMS的调用,使Java 数据库客户端与数据库服务器端通信。,10.1.2 JDBC 驱动程序(1)JDBC-ODBC 桥,10.1.2 JDBC 驱动程序,(3)JDBC-Net,纯Java驱动程序。它是纯Java的驱动程序,通过一定的网络协议与
6、数据库服务器上的JDBC中间件通信,由中间件程序将网络协议指令转换成数据库指令。中间件可支持多种数据库,适合具有中间件的分布式应用。(4)本地协议,纯Java驱动程序。可这类驱动程序通过实现一定的数据库协议(如Oracle公司的SQLNet)能将JDBC调用转换为数据库直接使用的网络协议,使Java数据库客户端直接与数据库服务器通信。它不需要安装客户端软件,它是100%的Java程序,所以其效率很高。,10.1.2 JDBC 驱动程序 (3)JDBC-Net,纯,10.2 JDBC中的主要类和接口,JDBC由一系列的类和接口组成,包括: 连接(Connection):实现建立与数据库的连接 S
7、QL语句(Statement):向数据库发起查询请求 结果集(ResultSet):处理数据库返回结果 其中核心的类和接口包含在java.sql包和javax.sql包中。表中列出了java.sql包中访问数据库的重要类和接口及它们的功能说明。,10.2 JDBC中的主要类和接口 JDBC由一系列的类,访问数据库的重要类和接口,访问数据库的重要类和接口类名功能说明java.sql.Dri,访问数据库的第一步是与数据源建立连接,只有建立了连接,才能在数据库和应用程序之间移动数据。DriverManager类是java.sql包中用于数据库驱动程序管理的类,用于在数据库和相应驱动程序之间建立连接,
8、也处理像驱动程序登录时间限制、登录和跟踪消息的显示等事务。,10.2.1 DriverManager类,访问数据库的第一步是与数据源建立连接,只有建立了连接,才能在,DriverManager类的主要成员方法,DriverManager类的主要成员方法类、接口或方法名功,DriverManager对象提供了三种建立数据库连接的方法。每种方法都返回一个Connection对象实例,区别是它们接收的参数不同。URL用于指定数据源和用于连接到该数据源的数据库的连接类型。其格式如下:jdbc:其中: jdbc: 表示使用的协议是JDBC。 :驱动程序或者连接机制的名称,可以有一个或者多个驱动程序支持:
9、数据库的唯一标识符例如:通过JDBC-ODBC桥和数据库的标识符DBTest来访问数据库的URL为:“jdbc:odbc:DBTest”,DriverManager对象提供了三种建立数据库连接的方,java.sql.Driver接口规定了所有JDBC驱动程序必须实现的方法。加载或注册一个数据库驱动程序,实际上就是创建了数据库驱动程序的一个实例,从而保证Java程序使用统一的形式,通过不同的数据库驱动器访问各种数据库。,10.2.2 Driver接口,java.sql.Driver接口规定了所有JDBC驱动,java.sql.Connection是java.sql包中定义的一个接口,其功能是建立
10、与数据库的连接。只有成功地建立与数据库的连接,才能够创建用于执行SQL语句的Statement对象,进而获取数据库执行SQL语句后返回的结果。,10.2.3 Connection接口,java.sql.Connection是java.sql包,Connection接口的主要成员方法,类或接口名功能说明Statement CreateState,10.2.4 Statement接口,Statement是在已经建立的连接的基础上向数据库发送SQL语句的对象。Statement接口定义了执行SQL语句和获取返回结果的成员方法。它们都作为在给定连接上执行 SQL 语句的容器,每个都专用于发送特定类型的
11、 SQL 语句。由于Statement为一个接口,它本身不能被实例化,必须通过调用Connection对象的createStatement()方法创建一个Statement对象。,10.2.4 Statement接口Statement是在,Satatement接口的主要成员方法,Satatement接口的主要成员方法成员方法名功能说明vo,Statement 接口提供了3种执行SQL语句的方法: (1)executeQuery( )方法:执行返回单个ResultSet的SQL语句,如SELECT语句。 (2)executeUpdate( )方法:用于执行INSERT、UPDATE、DELETE
12、、CREATE TABLE以及 DROP TABLE语句返回值是一个整数,表示它执行的SQL语句所影响的数据库中的表的行数。 (3)execute( )方法:用于执行返回多个结果集或多个更新计数的语句,它的执行结果可能会产生多个ResultSet,或者改变多条记录。所以一般只有在用户不知道执行SQL声明后会产生什么结果或可能有多种类型的结果产生时才会使用。,Statement 接口提供了3种执行SQL语句的方法:,10.2.5 ResultSet接口,结果集ResultSet是用来暂时存放执行SQL语句后产生的结果集合。它的实例对象一般是Statement类的子类通过方法execute( )或
13、executeQuery( )执行SQL语句后产生的,包含有这些语句的执行结果。ResultSet类似于数据库中的表,包含符合查询要求的所有行。 ResultSet类提供了一套getXXX()方法对这些行中的数据进行访问。,10.2.5 ResultSet接口 结果集Result,如:boolean getBoolean(int columnIndex)、int getInt(int columnIndex)等,用于获取当前行中某一列的值,返回相应类型的值。它还提供了很多移动游标(cursor)的方法。cursor是ResultSet 维护的指向当前数据行的指针。最初它位于第一行之前,因此第一
14、次访问结果集时通常调用 next()方法将游标置于第一行上,使它成为当前行。随后每次调用 next()使游标向下移动一行。另外,还提供了isBeforeFirst()、isAfterLast()、isFirst()、isLast()等方法用于判断游标是否在结果集的头部、结果集的末尾、结果集的第一行和结果集的最后一行等。,如:boolean getBoolean(int colum,10.2.6 PreparedStatement接口,当使用Statement对象执行SQL语句时,数据库中的SQL语句解释器首先将SQL语句进行编译,生成底层可理解的内部命令,然后执行。为了减少重复编译SQL语句所
15、产生的开销,JDBC提供了PreparedStatement接口,由于PreparedStatement语句中包含了经过预编译的SQL语句,因此可以获得更高的执行效率。特别是当需要反复调用某些SQL语句时,使用该接口具有明显的优势。,10.2.6 PreparedStatement接口 当使,1、创建PreparedStatement 对于JDBC,当使用Connection与某个数据库建立了连接对象con后,则con可以调用PreparedStatement()方法创建PreparedStatement对象。例如: stmt=con.prepareStatement(SELECT * FRO
16、M Student);2、执行PreparedStatement 创建了PreparedStatement对象后,就可以执行它了,调用表10-4所示的成员方法进行各种操作。如: stmt.executeUpdate();,1、创建PreparedStatement,在PreparedStatement语句中可以包含多个用通配符“?”代表的字段。在执行之前,必须为在创建PreparedStatement时定义的通配符提供实际的数据。可以利用setXXX()方法设置该字段的内容,从而增强程序设计的动态性。 例如:如果要替换的值是一个int型,则可调用setInt()方法。基本上可以找到所有Java
17、类型的setXXX()方法。setXXX()方法的第一个参数指定要替换的占位符的索引(索引从1开始)。通配符在预处理SQL语句中从左到右依次出现的顺序分别称为第1个,第2个第m个通配符。,在PreparedStatement语句中可以包含多个用,10.2.7 CallableStatement接口,CallableStatement接口继承了PreparedStatement接口,用于执行对数据库存储过程的调用。它提供了gettXXX()方法获取某字段的内容。如果要获取的值是一个int型,则可调用getInt()方法。setXXX()方法的第一个参数指定要替换的占位符的索引(索引从1开始)。通
18、配符在预处理SQL语句中从左到右依次出现的顺序分别称为第1个,第2个第m个通配符。,10.2.7 CallableStatement接口 C,1、创建CallableStatement 对象CallableStatement对象是用Connection接口的prepareCall()方法创建的。例如: CallableStatement cstm= con.prepareCall(call getTestData(?, ?); 其中被调用的存储过程的名字为getTestData。该存储过程有两个变量,但不含结果参数。 “?”通配符为IN、OUT或INOUT参数,取决于存储过程本身。,1、创建C
19、allableStatement 对象,在JDBC中调用存储过程的语法如下:call 过程名:不带参数的存储过程的调用。call 过程名(?, ?, .) :需要若干参数的存储过程的调用。? = call 过程名(?, ?, .): 需要若干参数并返回结果参数的存储过程的调用。,在JDBC中调用存储过程的语法如下:,2、执行CallableStatement 对象创建CallableStatement 对象后,就可以调用其相关成员方法完成所需的操作。例如: try CallableStatement cstm= con.prepareCall(call getStudentID(?, ?);
20、cstm.setString(1, 06070010);/向存储过程传递参数 cstm.registerOutParameter(2,Type.REAL);/如需存储过程返回结果,需先调用registerOutParameter()方法设置输出参数类型 cstm.executeQuery(); float x = cstmt.getFloat(1); /用get方法获取执行结果catch(SQLException e),2、执行CallableStatement 对象创建Cal,10.3 JDBC 访问数据库的基本过程,利用JDBC访问数据库需要经历下面几个基本步骤:(1) 注册数据源;(2)
21、 加载JDBC驱动程序;(3) 创建数据库连接;(4) 创建Statement;(5) 执行Statement;(6) 处理查询结果集;(7) 关闭数据库连接。,10.3 JDBC 访问数据库的基本过程 利用JDB,一、注册ODBC数据源,在创建数据库连接之前,必须要先创建数据源。下面以Windows XP为例说明注册ODBC数据源的过程。我们要把一个Oracle 10i的数据库Student注册为一个ODBC数据源,命名成DBTest。 注册步骤如下:,一、注册ODBC数据源 在创建数据库连接之前,必须要先创建数,1在Windows XP中选择“控制面板”、“性能和维护”、“管理工具”和“数
22、据源(ODBC)”,弹出如图所示的“ODBC数据源管理器”对话框。,1在Windows XP中选择“控制面板”、“性能和维护,2单击其中的某个驱动程序,或者选择“用户DSN”选项卡,然后单击“添加(D)”按钮,弹出如图所示的“创建新数据源”对话框。,2单击其中的某个驱动程序,或者选择“用户DSN”选项卡,在这个对话框中,选择Oracle公司提供的驱动程序Oracle OraDb10g_home1(如果要创建其他数据库的数据源,例如Microsoft SQL Server 或Microsoft Access数据库的数据源,可以在“创建新数据源”对话框中选择SQL Server或Microsoft
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序 设计 10 数据库 访问 编程 技术 课件
链接地址:https://www.31ppt.com/p-1285830.html