7.1JDBC概述
JDBC提供了在Java程序中直接访问数据库的功能,那么,什么是JDBC?JDBC是如何工作的?本节将介绍JDBC的这些基本知识。
7.1.1JDBC框架介绍
JDBC(Java DataBase Connectivity) 称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组Java语言编写的类和接口组成,有了JDBC就可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。
JDBC框架隔离了Java代码和具体的数据库,用户能够以相同的方式连接多种不同的数据库系统,即可以实现即使切换数据库服务器也不必变改写Java代码。如图所示
JDBC连接数据库之前必须先装载特定厂商提供的数据库驱动程序(Driver),通过JDBC的API访问数据库。有了JDBC技术,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等。
7.1.2 JDBC的体系结构
JDBC的结构可划分为两层:一个是面向底层的JDBC Driver Interface(驱动程序管理器接口),另一个是面向程序员的JDBC核心API,如图7-2所示。
使用JDBC编程,可让开发人员从复杂的驱动器命令和函数中解脱出来,侧重于应用程序中的关键业务代码上。JDBC支持不同的关系数据库,这使得程序的可移植性大大加强。JDBC的API是面向对象的,可以让用户把常用的方法封装为—个类。但是它也有缺点,一是使用JDBC,访问数据记录的速度会受到一定程度的影响。二是JDBC结构中包含不同厂家的产品,这就给更改数据源带来了很大的麻烦,更换后台数据库可能需要修改Java代码。
7.1.3 JDBC驱动分类
JDBC驱动是由数据库厂商提供的,可以到各自数据库的官网指定位置上下载。根据具体的使用方法不同,目前比较常见的JDBC驱动程序可分为四类。四种类型驱动程序如图7-3所示,通常开发中多采用第四种方式,这种驱动不需要先把JDBC的调用传给ODBC或本地数据库接口或者是中间层服务器,所以它的执行效率高。各数据库厂商均提供对JDBC的支持,即提供数据库连接使用的驱动程序文件。我们只需要做的就是正确加载驱动程序文件以获得数据库连接,实施操作。
a)JDBC-ODBC桥加上ODBC驱动程序
JDBC的API调用转换成ODBC的API调用,然后ODBC的API调用针对供应商的ODBC驱动程序来访问数据库,即利用JDBC-ODBC桥通过ODBC来操作数据源。微软提出的开放式数据库互连(Open-DataBase-Connectivity,即ODBC)成为一个强有力解决方案,并逐步成为Windows和Macintosh平台上的标准接口,并推动了这方面的开放性和标准化。本方案性能过低。
b)本地API
这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其它DBMS的调用。这种驱动方式将数据库厂商的特殊协议转换成Java代码及二进制类码,使Java数据库客户方与数据库服务器方通信。
**c)**JDBC网络纯Java驱动程序
这种驱动程序将JDBC转换为与DBMS无关的网络协议,之后这种协议又被某个服务器转换为一种DBMS协议。服务器中间件能够将纯Java客户机连接到多种不同的数据库上。数据库客户以标准网络协议(如HTTP、SHTTP)同数据库访问服务器通信,数据库访问服务器然后翻译标准网络协议成为数据库厂商的专有特殊数据库访问协议与数据库通信。
**d)**本地协议纯Java驱动程序
这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器。这种方式也是纯Java-Driver。数据库厂商提供了特殊的JDBC协议使Java数据库客户与数据库服务器通信。这种驱动直接把JDBC调用转换为符合相关数据库系统规范的请求。
由于第四种类型驱动写的应用可以直接和数据库服务器通讯,这种类型的驱动完全由Java实现,因此实现了平台独立性。