第三章 Java JDBC编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章JavaJDBC编程本章主要内容:1.JDBC技术介绍2.JDBC驱动程序3.应用JDBC进行数据库编程4.JDBC中主要的接口和类1.Time研究室萧仁惠,陈锦辉.JDBC数据库程序设计[M],中国铁道出版社,2004年.2.孙一林,彭波.Java数据库编程实例[M],清华大学出版社,2003年.3.飞思科技产品研发中心.Java2应用开发指南(第二版)[M],电子工业出版社,2003年.参考资料Sun’sJDBCSite•JDBCTutorial•ListofAvailableJDBCDrivers•APIforjava.Sql•在线资源JDBC概述JDBC,即Java数据库连接(JavaDatabaseConnectivity)JDBC是一组由Java类、接口组成的API。其目的是以平台独立的方式实现Java应用程序和小程序(Applet)对不同类型的数据库进行访问。通过使用JDBC,编程人员可以很方便地将SQL语句传送给数据库。JDBCAPI是Java核心API的一部分。3.1JDBC技术介绍JDBC概述JDBC为访问不同的数据库提供了一种统一的途径,像ODBC(OpenDatabaseConnectivity)一样,JDBC对开发者屏蔽了一些细节问题。JDBC的目标是使应用程序开发人员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,使得开发人员能够用纯JavaAPI来编写具有平台无关性的数据库应用程序,增强了数据库访问能力,大大简化和加快了开发过程。3.1JDBC技术介绍JDBC的特点1、在SQL水平上的API(StructuredQueryLanguage)为Java语言定义的一个SQL调用级界面,其中心在于执行基本的SQL声明和取回结果。在此基础上可以定义更高层次的API。2、与SQL的一致性–JDBC允许使用从属于DBMS的系统的任何查询语句,一个应用程序可以尽可能的使用SQL功能。–用户至少使用ANSISQL92entrylevel标准。3、可在现有的数据库接口之上实现–比如可以在ODBC之上实现。3.1JDBC技术介绍4、提供与其他Java系统一致的Java界面。5、简单易行,最大可能简单化。6、使用健壮、静态的通用数据类型。7、使一般情形简单化。8、多种方法、多种功能。3.1JDBC技术介绍ODBC介绍基于C语言的开放数据库互连(ODBC)是为了实现异构数据库互连而由Microsoft公司推出的一种标准,它是一个单一的、公共的编程接口。ODBC提供不同的程序以存取不同的数据库,但只提供一种应用编程接口(API)给应用程序。ODBC是基于C语言的界面,它指向基于SQL的数据库引擎,提供了与数据库通信以及访问数据库元数据(元数据是关于数据库系统供应商与数据存储方式等等的信息)的一致性界面。个别供应商会给他们特别的DBMS提供特有的驱动程序或“桥路器”。因此有了ODBC和SQL,就可以连接到数据库,并按标准方式进行操作。3.1JDBC技术介绍从ODBC过度到JDBCODBC是微软开发的通用数据接口。但是这个接口只能在微软的Windows操作平台上使用。Java通过前台的封装,实现了与ODBC的连接,从而开发出了JDBC—ODBC桥。3.1JDBC技术介绍ODBC体系结构3.1JDBC技术介绍ODBC体系结构中的四个层次应用程序(Application):执行ODBC函数的调用和处理,提交SQL语句并检索结果。驱动程序管理器(DriverManager):为应用程序装载驱动程序。驱动程序(Driver):驱动程序是实现ODBC函数调用和同数据源交互作用的动态链接库,它执行ODBC函数调用,提交SQL请求到指定的数据源,并把结果返回给应用程序。如果需要,驱动程序也可改变应用程序的请求,以与特定的DBMS的语法匹配。数据源(DataSource):由用户需要存取的数据和与之相连的操作系统、DBMS及存取DBMS的网络平台组成。3.1JDBC技术介绍JDBC体系结构3.1JDBC技术介绍JDBC体系结构(英文版)3.1JDBC技术介绍JDBC体系结构JDBC由两层构成,上面一层由面向开发人员的JDBCAPI构成,下面一层由面向底层的JDBC驱动程序API构成。(1)JDBCAPI:抽象接口,负责与JDBC驱动程序管理器API进行通信,供应用程序开发人员使用(连接数据库,发送SQL语句,处理结果)。(2)JDBC驱动程序API:JDBC驱动程序管理器与实际连接到数据库的第三方驱动程序进行通信(执行SQL语句,返回查询信息)。供各开发商开发数据库驱动程序(JDBCDriver)使用。JDBCDriver是一个类的集合,实现了JDBC所定义的类和接口,提供了一个能实现java.sql.Driver接口的类。3.1JDBC技术介绍JDBCAPI是一系列的接口,它使得应用程序能够进行数据库连接,执行SQL语句,并且得到返回结果。3.1JDBC技术介绍Java.sql.DriverManager用来装载驱动程序,并且为创建新的数据库连接提供支持。Java.sql.Connection完成对某一指定数据库的连接。Java.sql.Statement在一个给定的连接中作为SQL执行声明的容器,它包含了两个重要的子类型。Java.sql.PreparedSatement用于执行预编译的SQL声明Java.sql.CallableStatement用于执行数据库中存储过程的调用Java.sql.ResultSet用于给定声明取得结果的途径。3.1JDBC技术介绍JDBCDriverInterface是面向驱动程序开发商的接口,每一个驱动程序都必须提供对于–java.sql.Connection,java.sql.Statement,java.sql.PreparedStatement,java.sql.ResultSet等主要接口的实现方法。Java.sql.DriverManager需要装载驱动程序时,每个驱动程序需要提供一个能实现java.sql.Driver接口的类。例如:sun.jdbc.odbc.JdbcOdbcDrivercom.microsoft.jdbc.sqlserver.SQLServerDriver3.1JDBC技术介绍Java应用程序•Java程序主要包括Java应用程序和Java小程序和Servlet,主要是利用JDBC方法实现对数据库的访问和操作。•完成的主要任务有:请求与数据库建立连接向数据库发送SQL请求为结果集定义存储应用和数据类型、查询结果、处理错误、提交及关闭等操作3.1JDBC技术介绍JDBC驱动程序管理器•能够动态管理和维护数据库查询所需要的所有驱动程序对象,实现Java程序与特定驱动程序的连接。•其主要任务包括:为特定数据库选择驱动程序处理JDBC的初始化调用为每个驱动程序提供JDBC功能的入口为JDBC调用执行参数等3.1JDBC技术介绍3.1JDBC技术介绍JDBC驱动程序•驱动程序处理JDBC方法,向特定数据库发送SQL请求,并为JAVA程序获取结果。•JDBC是独立于数据库管理系统的,每一个数据库都有自己的协议与客户机通信,JDBC利用数据库驱动程序来使用这些数据库引擎。•JDBC驱动程序由数据库或第三方软件商提供,程序中所使用的DBMS不同,所需要的驱动程序也有所不同。数据库•Java程序需要访问的数据库及其数据库管理系统。•数据源由用户应用程序想访问的数据源和自身参数组成。•常用的数据库:Oracle数据库SQL-Server数据库Sybase数据库Informix数据库Access数据库3.1JDBC技术介绍数据源3.1JDBC技术介绍数据源DJava应用程序JDBC驱动程序管理器JDBC网络驱动程序AJDBC-ODBC桥JDBC驱动程序CJDBC驱动程序DODBC驱动程序B原始驱动程序C原始驱动程序C数据源A数据源B数据源CJDBC接口JDBC驱动程序接口JDBC体系结构与ODBC体系结构的不同与ODBC相比,JDBC直接在应用程序中加载驱动程序并连接特定的数据库。在体系结构中,JDBCAPI屏蔽不同的数据库驱动程序之间的差别,为开发者提供一个标准的、纯Java的数据库程序设计接口,为在Java中访问不同类型的数据库提供技术支持。驱动程序管理器(DriverManager)为应用程序装载数据库驱动程序(JDBCDriver),数据库驱动程序是与具体的数据库相关的,由数据库开发商提供,用于向数据库提交SQL请求,完成对数据库的访问。3.1JDBC技术介绍JDBC驱动程序分为以下四类3.2JDBC驱动程序这种方法执行效率比较低;需要在客户端加载数据库厂商提供的代码库。这样就不适合基于Internet的应用。通常用于测试及实验。3.2JDBC驱动程序服务端数据库ODBC驱动程序客户端连接库客户机JDBC-ODBC桥JDBCAPI1.JDBC-ODBC桥JDBC-ODBC桥由Sun公司在JDK中提供,它是将JDBC的调用转换成ODBC的调用并送至ODBC的驱动程序,由于它需要经过多层的转换,因此效率较差,并不适合大量数据处理的情况。这种驱动比起JDBC-ODBC桥执行效率大大提高了。但是,它仍然需要在客户端加载数据库厂商提供的代码库。这样就不适合基于Internet的应用;并且它的执行效率比起第3、第4种的JDBC驱动还是不够高。3.2JDBC驱动程序2.Java到本地API这种驱动程序直接利用客户端上的本地代码来与数据库进行直接通信。这种方法需要本地数据库驱动代码事先安装在客户端上。服务端数据库PartialJavaJDBCDriver客户端连接库客户机JDBCAPI由于这种驱动是基于server的,所以它不需要在客户端加载数据库厂商提供的代码库。而且它在执行效率和可升级性方面是比较好的。但是,这种驱动在中间层仍然需要配置其它数据库驱动程序,并且由于多了一个中间层传递数据,它的执行效率还不是最好。JavaApplet适合用这种驱动。3.2JDBC驱动程序3.网络纯Java驱动驱动程序是一个纯Java的驱动程序,它使用一个独立于数据库的协议,把数据库请求传送给一个服务器组件,这个组件把数据库请求转换成指定数据库协议接收的请求。数据库服务器数据库网络协议驱动客户机网络协议驱动中间层服务器JDBCAPI这种驱动程序执行效率是非常高的,因为它与数据库引擎和客户端之间没有本地代码层或中间层。这种驱动程序可以动态的被下载,但是对于不同的数据库需要下载不同的驱动程序。3.2JDBC驱动程序4.本地协议纯Java驱动程序驱动程序也是一个纯Java驱动程序,它直接把JDBC请求转换成数据库所提供的本地协议,因此客户端可直接和数据库通信。数据库服务器数据库本地协议驱动客户机JDBCAPIJDBC的功能JDBC的功能简单地说,JDBC为Java语言提供一个调用级的接口,主要完成下面3件事:•与一个数据库创建连接;•向数据库发送SQL语句,操作数据库及数据表;•接收及处理数据库返回的结果。这些功能由一系列API实现,其中主要的接口有驱动程序管理器(DriverManager)、驱动(Driver)、连接(Connection)、SQL语句(Statement)和结果集(ResultSet)。JDBCAPI调用流程关系图JDBC的功能3.3应用JDBC进

1 / 94
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功