第7章 JDBC技术详解
一般来讲,现在的Java Web开发已经很少直接使用JDBC进行数据库的相关操作了,一般都是自己对JDBC进行封装,或者直接使用开源的ORM产品,但万变不离其宗,最终它们都离不开对JDBC的操作,因此了解JDBC的原理还是非常必要的。
本章首先介绍JDBC的基础知识,然后通过示例讲解如何使用JDBC操作数据库,最后讲解事务管理和数据库连接池的相关知识。
7.1 JDBC概述
JDBC(Java Database Connectivity,数据库连接)是用来执行SQL的Java API。开发人员可以使用这些标准API来连接和操作数据库,实现数据库应用程序的开发。
7.1.1 JDBC相关概念
JDBC是Java的规范,考虑到规范的适用性,JDBC只提供了最直接的数据库操作规范。在java.sql包中的类,是Java应用程序用于连接数据库的标准方法。
JDBC有以下3种产品组件。
● JDBC驱动程序管理器:是JDBC体系结构的支柱。它实际上很小,也很简单,其主要作用是把Java应用程序连接到正确的JDBC驱动程序上,然后退出。
● JDBC驱动程序测试工具包:为JDBC驱动程序运行开发人员开发的程序提供一定的可信度。只有通过JDBC驱动程序测试的驱动程序才被认为是符合JDBC标准的。
● JDBC-ODBC桥:ODBC驱动程序可被用做JDBC驱动程序。它的实现为JDBC的快速发展提供了一条途径,其长远目标是提供一种访问某些不常见的DBMS的方法。
目前比较常见的JDBC驱动程序分为以下4类。
● JDBC-ODBC桥+ODBC驱动程序:JDBC桥产品利用ODBC驱动程序提供JDBC访问。这种类型的驱动程序最适合于企业网,或者是用Java编写的三层结构的应用程序服务器。
● 本地API:这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其他DBMS的调用。
● JDBC网络纯Java驱动程序:这种类型驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上,所用的具体协议取决于提供者。这是最灵活的JDBC驱动程序,有可能所有这种解决方案的提供者都提供适合于Intranet使用的产品。
● 本地协议纯Java驱动程序:这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议,这将允许从客户机上直接调用DBMS服务器,是访问Intranet的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己是主要来源。
JDBC驱动程序中的第一种方式中出现了ODBC驱动程序,什么是ODBC驱动程序呢?ODBC(Openning DataBase Connection,开放式数据库互连)驱动程序是由微软设计和开发的一种通用、标准的操作数据库的API,可以说其是一种数据库系统应用程序的接口规范,该驱动程序的工作原理如图7.1所示。
图7.1 ODBC的工作原理
ODBC驱动程序的作用,是把应用程序中操作数据库的指令,转换成某一种数据库相关的数据库指令,然后由具体相关的驱动程序传送给数据库。在开发的时候,只需要面对统一格式的ODBC数据源即可,而不必针对各种不同数据库做各种不同设计。
综上所述,JDBC的功能如下:
● 提供多样化的数据库连接方法。
● 为各种不同的数据库提供统一的操作界面。
7.1.2 配置JDBC驱动程序
MySQL数据库的JDBC驱动程序称为Connector/J,目前最新的版本为Connector/J 5.1.17。由于在3.1.7小节已经详细介绍过关于该驱动程序的下载,所以该小节将介绍关于数据库驱动程序的配置方式。即如何在MyEclipse工具中添加、修改和删除该驱动程序的JRE包?具体步骤如下:
01 首先在MyEclipse的运行界面中选择“Window>Preferences”命令,出现如图7.2所示的对话框。
图7.2 “Preferences”对话框
02 在“Preferences”对话框的左侧选择“Java>Build Path”选项,出现如图7.3所示的列表。
图7.3 User Libraries列表
03 在“User Libraries”界面中单击“New”按钮,在出现的如图7.4所示的对话框中输入名字,单击“确定”按钮就会新建一个User Libraries。
图7.4 新建User Libraries
注意:不要选中复选框,否则该Libraries会成为系统默认的Libraries。
接着在User Libraries列表中选择“MySQL”选项,单击“Add JARs”按钮把MySQL驱动程序(第3章下载的MySQL驱动程序Connector/J)添加进来,最后效果如图7.5所示。
图7.5 添加JAR包
如果在项目中想使用该JAR包,可以用鼠标右键单击该项目,在弹出的快捷菜单中选择如图7.6所示的命令,这时就会出现如图7.7所示的对话框。
图7.6 “Add Libraries”命令
图7.7 “Add Libraries”对话框
在“Add Libraries”对话框中,选择“User Library”选项,单击“Next”按钮就会进入为“User Librarie”选择具体内容的对话框(如图7.8所示),选择刚添加的“MySQL”,单击“Finish”按钮,就把MySQL驱动程序添加到了项目中。
图7.8 选择“MySQL”
当MySQL驱动程序添加到具体项目中后,在该项目中即可使用驱动程序提供的API,这样就可以连接和操作数据库了。