09 二月 2008

JDBC介绍

JDBC介绍


数据库现在作为各种应用和系统的主要数据源之一,它的作用已经越来越重要。为了访问数据库中的数据,在Windows平台下,提供了统一的数据库访问方式,微软推出了ODBC(开放式数据库连接),并提供了ODBC API,使用者在程序中只要调用ODBC API ,由ODBC驱动程序将调用请求转换为对特定数据库的调用请求。为了在Java语言中提供对数据库访问的支持,Sun公司于96年推出了JDBCJava数据库连接)。


JDBC描述了一组访问关系数据库的标准Java类库。我们通过使用这些类库,连接到关系数据库,通过SQL语句,对数据进行处理。JDBC不但提供了访问关系数据库的标准API,还为数据库厂商提供了一套标准的规范,数据库厂商只要遵循这套规范,就可以很灵活的为自己的数据库产品提供JDBC驱动支持,这些驱动程序可以是Java程序访问数据库的效率大大提高。


JDBC的驱动程序可以分为四类,分别是:





  • JDBC-ODBC




  • 部分本地API,部分Java驱动程序




  • JDBC网络纯Java驱动程序




  • 本地协议Java纯驱动程序




 





  1. JDBCODBC





因为微软推出的ODBCJDBC时间要早,因此绝大部分数据库都可以通过ODBC来访问,因此Sun公司推出JDBC的时候,为了支持更多的数据库,提供了JDBC-ODBC桥。JDBC-ODBC本身就是一个驱动,只不过,我们利用这个驱动,表面上使用的JDBCAPI,而实质上是通过内部调用ODBC区访问数据库。这种桥机制实际上是把JDBC调用转换成ODBC调用,并通过ODBC库把它们发送给ODBC数据源。


通过桥式连接访问数据库,需要经过多层调用,因此利用桥式连接访问数据库的效率比较低。当数据库么有提供JDBC驱动,只有ODBC驱动的情况下,此时才考虑桥式连接。


这种访问要求客户的机器上安装JDBC-ODBC桥驱动、ODBC驱动程序和相应数据库 的本地API。在JDK中,已经提供了JDBC-ODBC桥的实现类。





  1. 部分本地API Java驱动程序


    大部分数据库厂商都提供了与他们的数据库产品进行通信所需要的API,这些API往往用C语言或类似的语言编写,依赖于具体的平台。这一类型的JDBC驱动程序使用Java编写,它调用数据库厂商提供的本地API。当我们在程序中利用JDBC API访问数据库时,JDBC驱动程序将调用请求转换为厂商提供的本地API调用,数据库处理完请求将结果通过这些API返回,进而返回给JDBC驱动程序,JDBC驱动程序将结果转化为JDBC标准形式,再返回给客户程序。





通过这种类型的JDBC驱动程序访问数据库减少了ODBC的调用环节,提高了数据库访问的效率,并且能够充分利用厂商提供的本地API的功能。


这种访问,要求客户的机器上安装本地JDBC驱动程序和特定厂商的本地API





  1. JDBC网络纯Java驱动程序





这种驱动利用作为中间件的应用服务器来访问数据库。应用服务器作为一个到多个数据库的网关,客户端通过它可以连接到不同的数据库服务器。应用服务器通常都有自己的网络协议,Java客户程序通过JDBC驱动程序将JDBC调用发送给应用服务器,应用服务器使用本地驱动程序访问数据库,从而完成请求。





  1. 本地协议的纯Java驱动程序




这种类型的JDBC驱动程序完全用Java编写,通过与数据库建立直接的套接字连接,采用具体于厂商的网络协议把JDBC API调用转换为直接的网络调用。
这种类型的驱动是四种类型驱动中访问数据库效率最高的。不过,因为每个数据库厂商都有自己的协议,因此,访问不同厂商的数据库,需要不同的JDBC驱动。目前,主流的数据库厂商(OracleMicrosoftSybaseMySQL等)都为他们各自的数据库产品提供了这种类型的驱动。

没有评论: