Java教材课件12数据库编程.ppt
《Java教材课件12数据库编程.ppt》由会员分享,可在线阅读,更多相关《Java教材课件12数据库编程.ppt(59页珍藏版)》请在三一办公上搜索。
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,用户就不必为访问Sybase
2、数据库专门写一个程序,而为访问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结构示意图,从图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类就是这个管理层。下面是Dr
7、iverManager类提供的主要方法。,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.sql.Pre
9、paredStatement(用于执行预编译的SQL声明)和java.sql.CallableStaement(用于执行数据库中的存储过程)。Statement对象用于将SQL语句发送到数据库中。Statement对象本身并不包含SQL语句,因而必须给查询方法提供SQL语句作为参数。下面是Statement接口声明的主要方法。executeQuery(String sql):执行一条SQL查询语句,返回查询结果对象;executeUpdate(String sql):执行一条SQL插入、更新、删除语句,返回操作影响的行数;execute(String sql):执行一条SQL语句;,4.jav
10、a.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的调用。JDBC-ODBC桥
11、包含在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的调用转换成主流数据库API的
12、本机调用。和第一种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在数据库访问中的应用,建立与数据库的连接 因为现在使用的桌面平台多数是Windows系统,而微软的Acc
14、ess又是Office套件里自带的一个颇受欢迎的桌面数据库管理软件,所以本教程将以JDBC与Access数据库建立连接并处理Access数据库数据的方法为例来进行介绍。JDBC与Access数据库连接时,首先建立一个JDBC-ODBC桥接器。因ODBC(开放式数据库连接)驱动程序可与目前流行的任何一种数据库直接建立,而Java的JDBC借助桥接器的另一端ODBC可间接与任何一种数据库建立连接。,建立JDBC-ODBC桥接器用“Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);”语句,其中Class是包java.lang中的一个类,该类通过调用它的方法f
15、orName就可以建立JDBC-ODBC桥接器。建立桥接器可能发生异常,捕获这个异常的方法如下:try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);catch(ClassNotFoundException e),桥接器建好后,就要将Java与Access数据库真正建立连接了。使用包java.sql中的Connection类声明一个连接对象,再使用类Driver Manager的方法getConnection创建这个连接对象,语句格式如下:Connection c1;c1=DriverManager.getConnection(jdbc:odbc:
16、数据源名,user,password);这样,Java程序就与Access数据库真正建立了连接。若连接成功,则返回一个Connection类的对象conn,以后对这个数据源的操作都是基于conn对象的。,执行查询语句 JDBC一般采用基于Statement对象的查询方法。首先使用Statement类声明一个SQL语句对象,然后通过该连接对象调用createStatement()方法创建SQL语句对象。语句格式为:Statement sql;sql=conn.createStatement();,有了SQL对象后,这个对象就可以调用相应的方法实现对数据库的查询操作。具体地,在Statement对
17、象上,可以使用execQuery()方法执行查询语句。execQuery()方法的参数是一个String对象,即一个SQL的数据处理语句,并将查询结果放在一个ResultSet类声明的对象中,然后进行相应的处理。例如:ResultSet rs=sql.execQuery(Select*From TableName);在SQL中查询操作是通过select语句来完成的,基本的select语句格式如下:select from,假设有一个名为stu的表,里面包含id、name、sex、score几个字段,那么如果要查询表中name字段列的所有数据可以使用下面的命令:select name from s
18、tu如果要查询表中的所有数据,可以使用下面的命令:select*from stu这是一条最简单的select语句,可以把它分成三部分:select、*和from stu,三部分之间用空格隔开。其中select为SQL语言的保留字,是任何查询的第一个命令;“*”所处的位置上的参数是用来限定要返回的字段的,“*”表示返回表中所有的字段;from是保留字,它表示从哪个数据库表中得到数据,在该例中,是从stu表中查找数据。,使用select语句除了实现上述简单功能外,还可以利用select语句提供的各种子句进行更高级的查询功能,具体可实现的查询功能如下:1.筛选查询利用select的where子句可以
19、实现对表的查询结果进行筛选。其格式为:select 字段名2,from where 比如要查询STU表中score值大于60的数据,那么可以这样写:select*from stu where score60而如果要查询stu表中score值大于60且sex为“男”的数据,则语句应写为:select*from stu where score60 and sex=男,2.排序查询利用select语句提供的order by子句,可以得到排序后的查询结果,其格式为:select 字段名2,from order by;比如想使用stu表中的id来进行排序,那么则可以这样写:select*from stu
20、 order by id同理如果想使用score字段来进行排序那么就应该写成:select*from stu order by score,3.模糊查询在实际应用中,不见得总是能够给出精确的查询条件,因此经常需要根据一些并不确切的线索来查询信息。select语句提供的like子句来进行这类模糊查询。使用like子句的语法是:select 字段名2,from where like比如要查询stu表中name姓“王”的人员信息,那么则可以这样写:select*from stu where name like 王%以上是查询SQL语句中比较常用的几种查询方法,在这几种查询语句中,还可以进行多条件查询
21、等操作。当然,更高级的查询语句读者可以参考有关SQL数据库操作的资料。,在获得查询结果后,可以使用ResultSet类提供的方法对其进行操作:next():将数据指针往下移动一行,如果成功返回true;否则返回false;previous():将数据指针往上移动一行,如果成功返回true;否则返回false;first():将数据指针移到结果集的第一行;last():将数据指针移到结果集的最后一行;previous():将数据指针往上移动一行,如果成功返回true;否则返回false;getXxx(id):返回当前记录下第id个字段的值,其中Xxx一般指相应字段的数据类型,例如:String、
22、Int、Float等;getxx(name):返回当前记录下字段名为name的值,其中Xxx同上;close():关闭连接。,对数据库进行更新操作在Statement对象上,可以使用executeUpdate方法来执行对数据库进行更新的操作。这些操作包括对记录进行插入、修改和删除操作。executeUpdate()方法与execQuery()方法类似,executeUpdate()方法的参数也是一个String对象,即要执行的DML语句。它返回一个整数,这个整数表示对数据库记录的操作成功的次数。采用DML语句对数据库记录进行插入、修改和删除操作,分别对应于SQL的INSERT、UPDATE和D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 教材 课件 12 数据库 编程

链接地址:https://www.31ppt.com/p-6509820.html