JDBC driver参考文档:https://en.wikipedia.org/wiki/JDBC_driver

JDBC(the Java Database Connectivity API)是Java应用中用来连接关系型数据库的标准API.

目前提供了四种类型的JDBC启动:

1.JDBC-ODBC桥驱动程序(JDBC-ODBC Bridge Driver)

2.部分Java的本地JDBCAPI驱动程序

3.纯Java的数据库中间件驱动程序

4.纯Java的JDBC驱动程序

下面详细介绍

JDBC-ODBC桥驱动程序(JDBC-ODBC Bridge Driver)

此类驱动程序由JDBC-ODBC桥和一个ODBC驱动程序组成。其工作原理是,通过一段本地C代码将JDBC调用转化成ODBC调用。这一类型必须在本地计算机上先安装好ODBC驱动程序,然后通过JDBC-ODBCBridge的转换,将Java程序中使用的JDBCAPI访问指令转化成ODBCAPI指令,进而通过ODBC驱动程序调用本地数据库驱动代码完成对数据库的访问。

优势:

最节省投资。由于利用了已有的ODBC驱动程序,开发人员不必做额外的开发工作。

劣势:

由于需要首先把JD-BC操作翻译成对应的ODBC调用,然后这些调用又被传送给ODBC驱动程序,最后才执行数据库的相关操作,所以性能受到影响,执行效率比较低,不适合对大数据量存取的应用。

由于事先需要安装其他附加的软件(ODBC驱动),有损Java数据库程序的兼容性,不具备跨平台性,不适合基于Internet/Intranet的应用。

这类驱动程序不支持完整的Java命令集,而只局限于ODBC驱动程序的功能。

JDK8之后不支持了。

部分Java的本地JDBCAPI驱动程序

JDBC API驱动程序(Anative API partly Java technology-enabled Driver)此类驱动程序也必须在本地计算机上先安装好特定的驱动程序(类似ODBC),然后通过PartialJavaJDBCDriver的转换,把Java程序中使用的JDBC API转换成NativeAPI,进而存取数据库。

优势:

具有开放性,其利用多层结构,上层用Java实现,支持多数据库,下层为本地代码(包括一些二进制代码和一个轻量的Java库),加快了执行速度,提高了数据库访问效率。

劣势:

必须事先安装其他附加的软件(网络库),没有使用纯Java的API,很多时候,在体系结构上不能与大型主机的数据源兼容,即使做到了兼容,效果也是不尽人意。

本地化的代码增加了应用程序的危险性:如果在本地代码中存在缺陷,将可能使Java虚拟机完全垮掉。

要求编写面向特定平台的代码,使用这些驱动程序的开发者必须及时跟进不同数据库厂商针对不同操作系统发行的各个驱动程序版本。

客户端装入的网络库,同样会影响驱动程序的性能。

纯Java的数据库中间件驱动程序

纯Java的数据库中间件驱动程序(Pure Java Driver for Database Middleware)使用这类驱动程序时,不需要在本地计算机上安装任何附加软件,但是必须在安装数据库管理系统的服务器端加装中间件(Middleware),这个中间件负责所有存取数据库时必要的转换。其工作原理是:驱动程序将JDBC访问转换成与数据库无关的标准网络协议(通常是HTTP或HTTPS)送出,然后再由中间件服务器将其转换成数据库专用的访问指令,完成对数据库的操作。中间件服务器能支持对多种数据库的访问。

优势:

由纯Java语言开发而成的,并且中间件也仅需要在服务器上安装,不再需要客户端的本机代码,这类驱动程序的体积最小,效率较高,具有最大的灵活性。

采用标准的网络协议,可以被防火墙支持,是开发Applet程序理想的选择(其实这些驱动是为Applet特别编写的),是Internet应用理想的解决方案。

开发者还可以利用单一的驱动程序连接到多种数据库。

由于此种JDBC驱动程序提供了许多企业级的特征,因而非常适合用户的特殊用途,如:SSL安全、分布式事务处理等。如果用户未来扩张应用需要多个数据库,则选择这种方式是最理想的。由于它具有较好的性能和安全性,广泛应用于基于Web的应用系统的开发。

劣势:

需要在服务器端安装中间件,这适当影响了驱动程序的效率。

纯Java的JDBC驱动程序

纯Java的JDBC驱动程序(Direct-to-DatabasePureJavaDriver)这类驱动程序是直接面向数据库的纯Java驱动程序,即所谓的"瘦"驱动程序。使用这类驱动程序时无需安装任何附加的软件(无论是本地计算机或是数据库服务器端),所有存取数据库的操作都直接由JDBC驱动程序来完成,此类驱动程序能将JDBC调用转换成DBMS专用的网络协议,能够自动识别网络协议下的特殊数据库并能直接创建数据连接。

优势:

这是一类新型的驱动程序,它由数据库厂商提供,能够实现对于本公司数据库系统的最优化访问。

它无需安装任何附加软件,不会增加任何额外开销。

由纯Java语言开发而成,允许从客户机到数据库服务器的直接调用,能够自动识别网络协议下的特殊数据库并能直接创建数据连接,因此这种驱动程序的效率最高,拥有最佳的兼容性。

劣势:

由于使用DBMS专用的网络协议,可能不被防火墙支持,在Internet中会存在潜在安全隐患,成为这类驱动最大的缺陷。

不同DBMS的驱动程序不同,在一个异构计算环境中,驱动程序的数量可能会比较多。

总结:

此类驱动程序的诸多优点使得它的缺点并不突出,在企业级应用软件中,是应优先考虑的。因此,一个Servlet程序,要适应不同的操作系统,最好使用此类驱动;这种驱动也非常适合Applet程序,事实证明它能安全通过TCP/IP协议连接到数据库。可能是最佳的JDBC驱动程序类型。

results matching ""

    No results matching ""