用JDBC连接数据库(2)
· 数据库的种类
自从PC成为主要的办公室工具,众多的闻名数据库都开发了能在PC上运行的版本。它们包括如
Microsoft Works的基本数据库和如Approach、dBase、Borland Paradox、Microsoft Access 和
FoxBase比较复杂的数据库。
另一类型的PC数据库包括由PC客户端访问服务器端的数据库,其中有IBM DB/2、Microsoft SQL
Server、Oracle、Sybase、SQLBase和XDB。这些数据库产品都支持一些不同的相对简单的SQL命令,
而且这些命令似乎都是可以互换的。它们事实上不可互换的原因在于它们是为不同的性能特点所设计
的而且每种都具有不同的用户界面和编程界面。或许你会认为既然它们都支持SQL,对它们的编程也
会是及其相似的。但实事正好相反,因为每个数据库都有各自不同的接收SQL查询和返回结果的方式。
这也是下一个标准级别ODBC出现的原因。
· ODBC
假如编写的代码能独立于个别销售商的数据库,而且不用修改便可以从不同的数据库中获得相同的结
果,那将是最理想的。若我们将所有的数据库都做某些封装,使得这些数据库具有相同的编程接口,
上面的要求就很轻易实现了。
1992年,Microsoft发布了一个名为《对象数据库连接》的规范,这也意味着这一目标的首次实现。
它被用来解决对Windows环境下的所有数据库连接的支持。如同所有软件的第一个版本,它也受到了
越来越多的问题的困扰。1994年发行了另一个版本,这一版本相对来说更快且更稳定,而且它也是第
一个32位的版本。另外,ODBC开始支持Windows以外的其它平台。直到现在,它已流行在PC和工作站
平台上,ODBC的驱动程序几乎可以从所有的数据库提供商那里获得。
但是,ODBC并非如我们最初想象的如此万能。许多数据库提供商都以一种“替换接口”来支持ODBC,
而且用ODBC编程的成本也是不低的。它酷似其它的Windows编程,包含有句柄、指针和选项,这就使
它很难把握。ODBC不是一种独立控制的标准,它从Microsoft产生并由Microsoft开发,这个实事使其
未来很难猜测。
· 什么是JDBC?
JDBC是曾经是一组首字母缩写(Java DataBase Connectivity),但现在它已是自己的注册商标符号
。作为一种面向对象的封装和对ODBC API的重新设计,它易于把握而且确实答应你编写独立于提供
商的代码来查询和处理数据库。如同所有的Java API,JDBC是面向对象的,它不是一组很高级别的
对象,我们将在这章的剩下部分开发一些级别高一些的方法。
Microsoft以外的大多数数据库提供商都拥护JDBC并对他们的数据库提供JDBC驱动程序。这使得编写
完全独立于数据库的代码相当轻易。另外,JavaSoft和Intersolv共同开发了一个名为JDBC-ODBC
Bridge的产品,它可以在没有直接的JDBC驱动程序的情况下与数据库相连。所有支持JDBC的数据库
都至少应支持SQL-92标准,只有这样才能在不同的数据库和平台间实现最大程度的可移植性。
· 安装与使用JDBC
JDBC的类在java.sql包中,并随同Java JDK 1.1或更高的版本一起安装。但是,假如你想使用
JDBC-ODBC bridge,你必须另外两个包。首先,若使用的是Windows 95,则你必须将你的ODBC驱动程
序升级为32位的版本,这个版本可以从Microsoft的主页上下载。在其它站点,这个驱动程序很难找
到。你可以搜寻DataAcc.exe文件,下载并安装它。
JDBC-ODBC驱动程序可从Sun Java站点 (http://java.sun.com )处获得,寻找和下载该文件都很
简单。解压缩并安装这个驱动程序后,你还要做以下的事情: