Java数据库互连(数据库)
时间:2022-12-26 20:30:02 | 来源:信息时代
时间:2022-12-26 20:30:02 来源:信息时代
Java数据库互连 : 一种基于X/Open SQL调用级接口的规范,用于Java语言开发数据库应用的标准编程接口。它给出一系列Java对象的规格定义,这些对象被划分到Java.sql和Javax.sql两个包。Java应用代码通过JDBC可以访问数据库、提交SQL语句和接收结果等。它以面向对象的方法来制定规范以简化应用编程,比如在这些对象上可以用抽象、继承、多态等面向对象的基本技术提高开发效率和质量。
JDBC接口对象仍然面向关系型数据库。和ODBC执行方法类似,JDBC提供不同的语句类来支持不同的交互执行模型:
(1) Statement类: 每次向服务器发送一个SQL语句并执行。
(2) PreparedStatement类:在服务器缓存语句的执行计划,然后可以多次执行。
(3) CallableStatement类:执行数据库中的存储过程。
JDBC基于SQL-92进行设计。从3.0版起,逐步提供SQL-99标准中已被数据库产品所广泛支持的特性。JDBC驱动程序可以通过元数据接口类DatabaseMetadata报告它所支持的特性。
JDBC由Sun公司制定和发布,最早是在1997年作为J2SE开发工具包的一部分。后又发布了1.1、1.2、2.0、2.1、3.0,目前流行的是2.0和3.0规范。3.0版包括了此前各个版本的接口类,4.0版本也于2006年发布。
1. JDBC的基本结构
使用JDBC访问数据库需要四个主要组件:Java应用程序、JDBC驱动程序管理器、JDBC驱动程序和数据源(见图1)。
图1 基于JDBC访问数据库
(1) Java应用程序: Java应用程序具有高度可移植性,几乎能够运行在任何安装了Java虚拟机的平台上,它访问数据源需要通过JDBC驱动程序。
(2) JDBC驱动程序管理器:驱动程序管理器加载和管理驱动程序。建立连接时,它根据连接用的URL能够确定该URL的驱动程序并创建连接对象,然后对应用程序和驱动程序之间的交互进行其他控制。
(3)JDBC驱动程序: JDBC驱动程序是Java虚拟机上可动态加载的程序,数据库开发商提供的驱动程序是JDBC抽象类的实现。JDBC驱动程序有四种: ①JDBC-ODBC桥+ODBC驱动程序: 桥处理包和ODBC驱动程序必须在每个客户端机器上,应用对JDBC接口方法的调用由桥处理包转换为ODBC接口调用,然后经ODBC驱动程序访问数据源。这是一种本地的解决方案,不是跨平台方案。它不需要额外的JDBC驱动程序,但需要相关的ODBC驱动程序管理器、ODBC驱动程序并添加相应的数据源。②Java驱动程序+本地API:是代替JDBC-ODBC桥和ODBC驱动程序的另一种本地化解决方案。驱动程序中的Java代码调用具体数据库供应商提供的本地C/C++的API函数库,将JDBC调用转换为CLI调用直接访问数据源,完成交互操作。③JDBC-网络纯Java驱动程序: 该类驱动程序支持通用的网络API,它将应用中的JDBC调用翻译成网络API调用序列后传输到数据库中间件,再由中间件访问指定数据源,完成调用请求。数据库中间件可以连接多种数据库,具有很强的可伸缩性。因此,应用客户端就能够访问多种数据库,但要求中间件能够访问应用所需的数据源。④本地协议Java驱动程序: 纯Java实现的驱动程序中内置访问数据源的接口,JDBC方法直接访问数据库,执行调用。这种方法具有Java的平台无关性,但需要各厂商提供独立的驱动程序。
(4)JDBC数据源: 由于存在多种类型的JDBC驱动程序,JDBC的数据源可以分为传统的ODBC数据源和其他数据源。传统的ODBC数据源需要通过ODBC管理器管理,而其他数据源则由具体的JDBC驱动程序直接访问,不需要注册到应用主机。通过JDBC访问任何数据源都统一使用URL指定数据源,驱动程序根据URL建立必要的连接,因此应用程序设定正确的URL即可完成指定。
2. 工作流程
基于JDBC的应用程序的工作流程主要有三步:与某一数据库建立连接;向数据库发送SQL语句,操纵数据;最后取得处理结果。细化步骤如下:
(1)通过驱动程序管理器建立到数据源的连接对象。
(2)建立连接上的语句对象或其子类对象。
(3)如果需要,设定语句对象使用的位置参数。
(4)执行语句对象关联的查询。
(5)查看执行状态,处理返回的结果集。
(6)关闭语句对象和查询间的关联。
(7)处理其他的语句对象。
(8)提交或回滚连接上的事务,关闭连接。
连接对象是Java应用程序与数据库服务器通信的控制对象,应用程序访问数据库前必须获取至少一个数据库连接。连接对象最终由Java.sql.Connection接口类创建,可以设置连接选项、管理事务和创建语句对象等。
JDBC是面向对象的驱动程序,函数可以重载,因此多数接口函数有若干个实现,例如,getInt0检索列值时可以用列序号,也可以用列名。
3. JDBC特点
JDBC接口对象的方法与ODBC API很相似,利于用户理解。方法更为简单,编程人员可以从复杂的驱动程序调用命令和函数中解脱出来,更致力于应用程序中的关键地方。JDBC提高了程序的可移植性。
JDBC的主要缺点在于:受Java虚拟机的限制,访问数据的速度会受一定的影响。另外JDBC结构中也包含具体产品的实现规定,如连接URL不完全统一。