Java程序设计-JDBC技术.ppt
《Java程序设计-JDBC技术.ppt》由会员分享,可在线阅读,更多相关《Java程序设计-JDBC技术.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java程序设计程序设计JDBC技术技术主讲教师:周立波主讲教师:周立波第第13章章JDBC技术技术13.1JDBC概述概述【什么是【什么是JDBC】JDBC(JavaDatabaseConectivity)是为)是为Java程序中访问数据库而设计的一组程序中访问数据库而设计的一组JavaAPI,JDBC中包括了一组由中包括了一组由Java语言书写的接口和类,语言书写的接口和类,它们都是独立于特定的它们都是独立于特定的DBMS。JDBC是是Java数据数据库应用开发中的一项核心技术。库应用开发中的一项核心技术。有了有了JDBC,程序员可以方便地在,程序员可以方便地在Java语言中语言中使用使用
2、SQL语言,从而使语言,从而使Java应用程序或应用程序或JavaApplet可以实现对分布在网络上的各种关系数据库的访问可以实现对分布在网络上的各种关系数据库的访问.使用了使用了JDBC以后,程序员可以将精力集中于上以后,程序员可以将精力集中于上层的功能实现,而不必关心底层与具体的层的功能实现,而不必关心底层与具体的DBMS的的连接和访问过程。连接和访问过程。【JDBC的功能】的功能】JDBC由一组由一组Java语言编写的类和接口组成,使语言编写的类和接口组成,使用内嵌式的用内嵌式的SQL,主要实现三方面的功能:建立与数,主要实现三方面的功能:建立与数据库的连接、执行据库的连接、执行SQL声
3、明以及处理声明以及处理SQL执行结果。执行结果。【JDBC的结构和特点】的结构和特点】目前基于目前基于JDBC的高层的高层API主要是从关系数据库到主要是从关系数据库到Java类的直接映射。类的直接映射。在这种在这种“对象对象/关系关系”映射中,数据库中表的每一映射中,数据库中表的每一行都将变成这一类的一个实例(对象),每一列的值行都将变成这一类的一个实例(对象),每一列的值对应实例的一个属性。对应实例的一个属性。Java程序通过程序通过JDBC访问数据库的关系访问数据库的关系Java应用程序应用程序JDBC服务器服务器各种数据库各种数据库JDBC包含两部分与数据库独立的包含两部分与数据库独立
4、的API:面向程序:面向程序开发人员的开发人员的JDBCAPI和面向底层的和面向底层的JDBCDriverAPI.面向程序开发人员的面向程序开发人员的JDBCAPI被描述成为抽象被描述成为抽象的的Java接口,通过这些接口应用程序可以对某个数接口,通过这些接口应用程序可以对某个数据库打开连接,执行据库打开连接,执行SQL语句并且处理结果。语句并且处理结果。JDBC的体系结构示意图的体系结构示意图Java数据库应用数据库应用标准标准SQL语句语句JDBCAPIJDBC驱动管理器驱动管理器JDBC驱动驱动API特定数据库的驱动特定数据库的驱动特定数据库服务器特定数据库服务器DatabaseJDBC
5、的驱动管理器负责管理针对各种类型的驱动管理器负责管理针对各种类型DBMS的的JDBC驱动程序。也负责和用户的应用程序交互,驱动程序。也负责和用户的应用程序交互,为为Java应用程序建立数据库连接。应用程序建立数据库连接。Java应用程序通过应用程序通过JDBCAPI向向JDBC驱动管理驱动管理器发出请求,指定要装载的器发出请求,指定要装载的JDBC驱动程序类型和数驱动程序类型和数据源。驱动管理器会根据这些要求装载合适的据源。驱动管理器会根据这些要求装载合适的JDBC驱动程序并使该驱动连接相应的数据源。一旦连接成驱动程序并使该驱动连接相应的数据源。一旦连接成功,该功,该JDBC驱动程序就会负责驱
6、动程序就会负责Java应用与该数据源应用与该数据源的一切交互,即作为中间的翻译将的一切交互,即作为中间的翻译将Java应用中对应用中对JDBCAPI的调用转换成特定的调用转换成特定DBMS能够理解的命令,能够理解的命令,将数据库返回的结果转换成将数据库返回的结果转换成Java程序所能识别的数程序所能识别的数据。据。【JDBC驱动类型】驱动类型】JDBC驱动有四种类型:驱动有四种类型:JDBC-ODBC桥、本地桥、本地API部分部分Java驱动、网络协议完全驱动、网络协议完全Java驱动、本地驱动、本地协议完全协议完全Java驱动。驱动。1.JDBC-ODBC桥(桥(JDBC-ODBCbridg
7、e)这种驱动实际上是利用了现有的这种驱动实际上是利用了现有的ODBC,将,将JDBC调用翻译为调用翻译为ODBC的调用。这种类型的驱动使的调用。这种类型的驱动使Java应用可以访问所有支持应用可以访问所有支持ODBC的的DBMS。2.本地本地API部分部分Java驱动驱动(native-APIjavadriver)这种驱动方式将数据库厂商的特殊协议转换成这种驱动方式将数据库厂商的特殊协议转换成Java代码及二进制类码,使代码及二进制类码,使Java数据库方与数据库数据库方与数据库服务器通信。服务器通信。【什么是【什么是ODBC】ODBC(OpenDatabaseConnectivity,开放数
8、,开放数据库互连据库互连)是微软公司开发的有关数据库的一个组成部是微软公司开发的有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问分,它建立了一组规范,并提供了一组对数据库访问的标准的标准API。这些。这些API利用利用SQL来完成其大部分任务。来完成其大部分任务。ODBC本身也提供了对本身也提供了对SQL语言的支持,用户可以直语言的支持,用户可以直接将接将SQL语句送给语句送给ODBC。【不在【不在Java应用程序中使用应用程序中使用ODBC的原因】的原因】ODBC是一个是一个C语言实现的语言实现的API,从,从Java程序程序中调用本地的中调用本地的C程序会带来一系列类似
9、安全性、健程序会带来一系列类似安全性、健壮性的缺点。壮性的缺点。3.网络协议完全网络协议完全Java驱动驱动(net-protocoljavadriver)这种驱动器将这种驱动器将JDBC指令转化成独立于指令转化成独立于DBMS的的网络协议形式,再由服务器转化为特定网络协议形式,再由服务器转化为特定DBMS的协的协议形式。有关议形式。有关DBMS的协议由各数据库厂商决定。的协议由各数据库厂商决定。这种驱动器可以链接到不同的数据库上,最为灵活。这种驱动器可以链接到不同的数据库上,最为灵活。4.本地协议完全本地协议完全Java驱动驱动(native-protocolfullydriver)这种驱动
10、器将这种驱动器将JDBC指令转化成网络协议后不再指令转化成网络协议后不再转换,而是由转换,而是由DBMS直接使用。相当于客户机直接直接使用。相当于客户机直接与服务器相连写,对局域网适用。与服务器相连写,对局域网适用。在这四种驱动器中,后两种在这四种驱动器中,后两种“纯纯Java”的驱动器效的驱动器效率率更高,也更具有通用性。但目前第一、第二类驱动器更高,也更具有通用性。但目前第一、第二类驱动器比较容易获得,使用也比较普遍。比较容易获得,使用也比较普遍。【JDBC支持的数据库模型】支持的数据库模型】在与数据库的连接操作中,在与数据库的连接操作中,JDBC支持两种不同的支持两种不同的模型。这两种模
11、型根据用户与数据库的关系层次不模型。这两种模型根据用户与数据库的关系层次不同,分别成为两层模型和三层模型。同,分别成为两层模型和三层模型。两层模型两层模型两层模型中,两层模型中,Java的应用程序直接与数据库联系。的应用程序直接与数据库联系。用户的用户的SQL声名直接提交给数据库,执行的结果回送声名直接提交给数据库,执行的结果回送给用户,这种模型具有客户机给用户,这种模型具有客户机/服务器结构。服务器结构。三层模型三层模型在三层模型中,用户不直接与数据库联系。用在三层模型中,用户不直接与数据库联系。用户的命令首先发送给一个所谓户的命令首先发送给一个所谓“中间层中间层”。中间层。中间层再将再将S
12、QL声名发送给声名发送给DBMS,执行的结果也同样由,执行的结果也同样由中间层转交。三层模型的好处是可以通过中间层保中间层转交。三层模型的好处是可以通过中间层保持对存取权限和共有数据允许修改类型的控制,便持对存取权限和共有数据允许修改类型的控制,便于安全管理。同时,用户可以使用一种较为友善的于安全管理。同时,用户可以使用一种较为友善的高层高层API,由中间层转化为恰当的底层命令,保证较,由中间层转化为恰当的底层命令,保证较好地运行工效。好地运行工效。13.2JDBCAPI新发布的新发布的JDBC2.0的的API有两个部分:有两个部分:Java.sql和和Javax.sql(1)java.sql
13、是是JDBC2.0的核心包,其中包括了的核心包,其中包括了JDBC1.0规范中规定的规范中规定的API和新的核心和新的核心API,这个这个包包含于包包含于Java2StandardEdtion中。中。(2)javax.sql是是JDBC2.0的标准扩展包,相对于的标准扩展包,相对于JDBC1.0而言是全新的,这个包包含于而言是全新的,这个包包含于Java2EnterpriseEdition中。中。JDBC2.0扩展了许多企业级应用程序特别需要扩展了许多企业级应用程序特别需要的功能,提供了一些扩展的功能,提供了一些扩展API.采用了新的方法连接数据库采用了新的方法连接数据库DataSourceI
14、nterfaceJDBC2.0提供了新的接口提供了新的接口DataSource用来实现数用来实现数据库连接,可以替代据库连接,可以替代1.0中提供的中提供的DriverManager.ConnectionPooling(连接缓冲池连接缓冲池)使用连接缓冲池后,当一个应用程序关闭一个连使用连接缓冲池后,当一个应用程序关闭一个连接时,这个连接并不真正释放而是被循环利用。因接时,这个连接并不真正释放而是被循环利用。因为建立连接是消耗较大的操作,循环利用可以显著为建立连接是消耗较大的操作,循环利用可以显著地提高性能。地提高性能。DistributedTransaction(分布式交换)分布式交换)获得
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 JDBC 技术
限制150内