Java教材课件——数据库编程.ppt_第1页
Java教材课件——数据库编程.ppt_第2页
Java教材课件——数据库编程.ppt_第3页
Java教材课件——数据库编程.ppt_第4页
Java教材课件——数据库编程.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、第12章 数据库编程,教学目的要求 1.了解JDBC的概念; 2.掌握使用JDBC查询数据库的方法; 3.掌握使用JDBC更换数据库的方法。,12.1 JDBC技术简介,JDBC概述 JDBC(Java DataBase Connectivity,Java数据库连接)是一套允许Java与SQL数据库对话的程序设计接口,它是用于执行SQL语句的Java API,是Java应用程序连结数据库、存取数据的一种机制,可以为多种关系数据库提供统一的访问,它由一组用Java语言编写的类和接口组成。,有了JDBC,向各种关系数据库发送SQL语句就很容易了。换句话说,有了JDBC API,用户就不必为访问Sy

2、base数据库专门写一个程序,而为访问Oracle数据库又专门写一个程序,或为访问Sql Server数据库再编写另一个程序,用户只需用JDBC API写一个程序逻辑就够了,它可以向各种不同的数据库发送SQL语句。所以,在使用Java编程语言编写应用程序时,不用再去为不同的平台编写不同的应用程序。由于Java语言具有跨平台性,所以将Java和JDBC结合起来将使程序员只须写一遍程序就可让它在任何平台上运行,这也进一步体现了Java语言“编写一次,到处运行”的宗旨。 JDBC向应用程序开发者提供独立于数据库的、统一的API,这个API提供了编写的标准,并考虑了所有不同应用程序设计的标准,其关键是

3、一组由驱动程序实现的Java接口。驱动程序负责标准的JDBC调用,当应用程序被移植到不同的平台或数据库系统,应用程序不变,改变的是驱动程序,驱动程序扮演了多层数据库设计中的中间层(或中间件)的角色。,JDBC的基本功能 Java和JDBC的结合,使数据处理变得容易和经济,即使这些数据是储存在不同数据库管理系统上,企业可继续使用它们安装好的数据库,并能便捷地存取数据。新程序的开发期很短,安装和版本控制将大为简化。程序员可以只编写一次应用程序,然后将它放到服务器上,之后任何人都可得到最新版本的应用程序。对于商务上的销售信息服务,Java和JDBC可为外部客户提供获取信息更新的方法,特别是在交互频繁

4、的网页中,如果用通常的方式访问数据库,用户每次提交表单后,浏览器都需要刷新、下载页面,而在网页中嵌入Java Applet,运用JDBC访问数据库,只须下载返回的数据,大大提高了访问速度和网络的利用率。,JDBC扩展了Java的功能,例如,用Java和JDBC API可以发布含有Applet的网页,而该Applet使用的信息可能来自远程数据库。企业也可以用JDBC通过Intranet将所有职员连到一个或多个内部数据库中,即使这些职员所用的计算机是各种不同的操作系统,因为Java是跨平台的语言。 简单地说,JDBC主要完成以下四方面的工作:加载JDBC驱动程序;建立与数据库的连接;使用SQL语句

5、进行数据库操作并处理结果;关闭相关连接。,12.2 JDBC接口与驱动程序,JDBC主要提供两个层次的接口,分别是面向程序开发人员的JDBC API(JDBC应用程序接口)和面向系统底层的JDBC Drive API(JDBC驱动程序接口),它们的功能如下图所示。,从图12.2中可看出JDBC API所关心的只是Java调用SQL的抽象接口,而不考虑具体使用时采用的是何种方式,具体的数据库调用要靠JDBC Driver API(JDBC驱动程序接口)来完成,即JDBC API可以与数据库无关,只要提供了JDBC Driver API,就可以JDBC API访问任意一种数据库,无论它位于本地还是

6、远程服务器。,JDBC API JDBC API被描述成一组抽象的接口,JDBC的接口和类定义都在包java.sql中,利用这些接口和类可以使应用程序很容易地对某个数据库打开连接、执行SQL语句、并且处理结果。下面对这些接口提供的方法进行详细介绍。 1.java.sql.DriverManager接口 java.sql.DriverManager用来装载驱动程序,并为创建新的数据连接提供支持。 JDBC的DriverManager如同一座桥梁,一方面,它面向程序提供一个统一的连接数据库的接口;另一方面,它管理JDBC驱动程序,DriverManager类就是这个管理层。下面是DriverMan

7、ager类提供的主要方法。,getDriver(String url):根据指定url定位一个驱动; getDrivers():获得当前调用访问的所有加载的JDBC驱动; getConnection():使用给定的url建立一个数据库连接,并返回一个Connection接口对象; registerDriver(java.sql.Driver dirver):登记给定的驱动; setCatalog(String database):确定目标数据库。,2.java.sql.Connection接口 java.sql.Connection完成对某一指定数据库的连接。 Connection接口用于一个

8、特定的数据库连接,它包含维持该连接的所有信息,并提供关于这个连接的方法。 createStatement():在本连接上生成一个Statement对象,该对象可对本连接的特定数据库发送SQL语句; setAutoCommit(Boolean autoCommit):设置是否自动提交; getAutoCommit():获得自动提交状态; commit():提交数据库上当前的所有待提交的事务; close():关闭当前的JDBC数据库连接;,3.java.sql.Statement接口 java.sql.Statement在一个给定的连接中作为SQL执行声明,它包含了两个重要的子类型java.sq

9、l.PreparedStatement(用于执行预编译的SQL声明)和java.sql.CallableStaement(用于执行数据库中的存储过程)。 Statement对象用于将SQL语句发送到数据库中。Statement对象本身并不包含SQL语句,因而必须给查询方法提供SQL语句作为参数。下面是Statement接口声明的主要方法。 executeQuery(String sql):执行一条SQL查询语句,返回查询结果对象; executeUpdate(String sql):执行一条SQL插入、更新、删除语句,返回操作影响的行数; execute(String sql):执行一条SQL

10、语句;,4. java.sql.ResultSet接口 java.sql.ResultSet用于保存数据库结果集,通常通过执行查询数据库的语句生成。 java.sql.ResultSet对于给定声明获得结果的存取控制。在这些接口中提供了非常丰富的方法,可以使用这种方法对数据库进行各种操作。,JDBC Drive API 它是面向驱动程序开发的编程接口。根据其运行条件的不同,常见的JDBC驱动程序主要有四种类型,它们分别是: 1.JDBC-ODBC桥加ODBC驱动程序(JDBC-ODBC bridge plus ODBC driver) JDBC-ODBC桥驱动程序,将JDBC调用转换为ODBC

11、的调用。JDBC-ODBC桥包含在Sun公司提供的JDBC软件包中,它是一种JDBC驱动程序,在ODBC的基础上实现了JDBC的功能,它充分发挥了支持ODBC大量数据源的优势。JDBC利用JDBC-ODBC桥,通过ODBC来存取数据,JDBC调用被传入JDBC-ODBC桥然后通过ODBC调用适当的ODBC驱动程序,以实现最终的数据存储。因此,这种类型的驱动程序适合用于局域网中或者用于三层的结构中。Sun建议该类驱动程序只用于原型开发,而不要用于正式的运行环境。,2.本地API、部分是Java的驱动程序(Native-API partly-Java driver) 该类型的驱动程序用于将JDBC

12、的调用转换成主流数据库API的本机调用。和第一种JDBC驱动程序类似,这类驱动程序也需要在每一个客户机安装数据库系统的客户端,因而适合用于局域网中。这种类型的驱动程序要求编写面向特定平台的代码,主流的数据库厂商例如Oracle和IBM,都为它们的企业数据库平台提供了该类驱动程序。,3. JDBC-Net的纯Java驱动程序(JDBC-Net pure Java driver) 这种类型的驱动程序将JDBC调用转换成与数据库无关的网络访问协议,利用中间件将客户端连接到不同类型的数据库系统。使用这种驱动程序不需要在客户端安装其他软件,并且能访问多种数据库。这种驱动程序是与平台无关的,并且与用户访问

13、的数据库系统无关,特别适合组建三层的应用模型,这是最为灵活的JDBC驱动程序。,4. 本地协议的纯Java驱动程序(Native-protocol pure Java driver) 这种类型的驱动程序将JDBC调用直接转化为某种特定数据库的专用的网络访问协议,可以直接从客户机来访问数据库系统。这种驱动程序与平台无关,而与特定的数据库有关,这类驱动程序一般由数据库厂商提供。 第三、四两类都是纯Java的驱动程序,它们具体Java的所有优点,因此,对于Java开发者来说,它们在性能、可移植性、功能等方面都有优势。,12.3 JDBC在数据库访问中的应用,建立与数据库的连接 因为现在使用的桌面平台

14、多数是Windows系统,而微软的Access又是Office套件里自带的一个颇受欢迎的桌面数据库管理软件,所以本教程将以JDBC与Access数据库建立连接并处理Access数据库数据的方法为例来进行介绍。JDBC与Access数据库连接时,首先建立一个JDBC-ODBC桥接器。因ODBC(开放式数据库连接)驱动程序可与目前流行的任何一种数据库直接建立,而Java的JDBC借助桥接器的另一端ODBC可间接与任何一种数据库建立连接。,建立JDBC-ODBC桥接器用“Class.forName (“sun.jdbc.odbc.JdbcOdbcDriver”);”语句,其中Class是包java.

15、lang中的一个类,该类通过调用它的方法forName就可以建立JDBC-ODBC桥接器。建立桥接器可能发生异常,捕获这个异常的方法如下: try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); catch(ClassNotFoundException e) ,桥接器建好后,就要将Java与Access数据库真正建立连接了。使用包java.sql中的Connection类声明一个连接对象,再使用类Driver Manager的方法getConnection创建这个连接对象,语句格式如下: Connection c1; c1=DriverManage

16、r.getConnection(jdbc:odbc:数据源名,user,password); 这样,Java程序就与Access数据库真正建立了连接。若连接成功,则返回一个Connection类的对象conn,以后对这个数据源的操作都是基于conn对象的。,执行查询语句 JDBC一般采用基于Statement对象的查询方法。首先使用Statement类声明一个SQL语句对象,然后通过该连接对象调用createStatement()方法创建SQL语句对象。语句格式为: Statement sql; sql = conn.createStatement();,有了SQL对象后,这个对象就可以调用相

17、应的方法实现对数据库的查询操作。具体地,在Statement对象上,可以使用execQuery()方法执行查询语句。execQuery()方法的参数是一个String对象,即一个SQL的数据处理语句,并将查询结果放在一个ResultSet类声明的对象中,然后进行相应的处理。例如: ResultSet rs = sql.execQuery(Select * From TableName); 在SQL中查询操作是通过select语句来完成的,基本的select语句格式如下: select from ,假设有一个名为stu的表,里面包含id、name、sex、score几个字段,那么如果要查询表中n

18、ame字段列的所有数据可以使用下面的命令: select name from stu 如果要查询表中的所有数据,可以使用下面的命令: select * from stu 这是一条最简单的select语句,可以把它分成三部分:select、*和from stu,三部分之间用空格隔开。其中select为SQL语言的保留字,是任何查询的第一个命令;“*”所处的位置上的参数是用来限定要返回的字段的,“*”表示返回表中所有的字段;from是保留字,它表示从哪个数据库表中得到数据,在该例中,是从stu表中查找数据。,使用select语句除了实现上述简单功能外,还可以利用select语句提供的各种子句进行更高级的查询功能,具体可实

温馨提示

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

评论

0/150

提交评论