为什么使用JDBC数据库编程


本文节选自《21天学通JAVA》一书


    在JDBC数据库编程中经常要使用ODBC。所以,在讲述JDBC的驱动程序分类之前,首先介绍什么是ODBC。ODBC是指Open DataBase Connectivity,即开放数据库互连,它建立了一组规范,并且提供了一组对数据库访问的标准API(应用程序编程接口),这些API利用SQL来完成其大部分任务。ODBC也提供了对SQL的支持。

    JDBC驱动程序由实施了这些接口的类组成,JDBC的总体结构有4个组件,分别为应用程序、驱动程序管理器、驱动程序和数据源。将JDBC转换成ODBC驱动器,依靠ODBC驱动器和数据库通信。在这种方式下,ODBC驱动程序和桥代码必须出现在用户的每台机器中,这种类型的驱动程序最适合于企业网(这种网络上客户机的安装不是主要问题),或者是用Java编写的三层结构的应用程序服务器代码。

    本地API一部分用Java来编写的驱动程序。这种类型的驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其他DBMS的调用。像其他驱动程序一样,这种类型的驱动程序,要求将某些二进制代码加载到每台客户机上。

JDBC网络纯Java驱动程序将JDBC转换为与DBMS无关的网络协议,这种协议又被某个服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上,所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。所有这种解决方案的提供者,都提供适合于Intranet用的产品。为了使这些产品支持Internet,它们必须处理Web所提出的安全性、通过防火墙的访问等额外要求,几家提供者正将JDBC驱动程序,加到他们现有的数据库中间件产品中。

本地协议纯Java驱动程序类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议,这将允许从客户机机器上直接调用DBMS服务器,是Intranet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源。

    目前市面上有很多种数据库,例如Oracle、Sybase、MS SQL Server和MS Access等数据库。有些读者就会认为既然有这么多数据库,这里要学习数据库编程,是不是就要学习对应每一种数据库的编程方法呢。在JDBC之前是这样的,但是有了JDBC后,就变得非常容易。

    JDBC在数据库编程中将起到非常重要的作用。首先程序员可以使用Java开发基于数据库的应用程序,在遵守Java语言规则的同时,可以使用标准的SQL语句访问任何数据库。如果数据库厂商提供较低层的驱动程序,程序员可以在自己的软件中,使用比较优化的驱动程序。

    很多数据库系统带有JDBC驱动程序,Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBC-ODBC bridge,用此技术,Java程序就可以访问带有ODBC驱动程序的数据库。目前,大多数数据库系统都带有ODBC驱动程序,所以,Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。