JDBC驱动程序类型

时间:2020-01-09 10:35:20  来源:igfitidea点击:

Java编程语言中的JDBC API提供了一种标准的通用方法来连接数据库。在JDBC API中提供接口的实现是不同数据库供应商的责任,并且数据库供应商的实现是作为JDBC驱动程序提供的。

JDBC驱动程序的类型

基于这些不同的实现,JDBC驱动程序分为四种类型。

  • 类型1驱动程序:JDBC-ODBC桥JDBC驱动程序

  • 类型2驱动程序:部分用Java和部分本机代码编写

  • 类型3驱动程序:将客户端请求转换为数据源的纯Java客户端和中间件服务器。

  • 类型4驱动程序:完全用Java编写。

类型1 JDBC驱动程序

类型1 JDBC驱动程序将JDBC API实现为到另一个数据访问API的映射,例如ODBC(开放数据库连接)。

JDBC-ODBC Bridge驱动程序是将JDBC API请求映射到ODBC请求的类型1 JDBC驱动程序的示例。

缺点

  • 类型1驱动程序是Oracle不再支持的旧驱动程序。

  • 这些驱动程序不是完全用Java编写的,并且依赖于本机库,因此类型1驱动程序不可移植。

  • 每个JDBC调用都映射到ODBC请求,然后映射到DB,这使其非常慢。

类型1 JDBC驱动程序

类型2 JDBC驱动程序

类型2 JDBC驱动程序部分用Java编程语言编写,部分用本机代码编写。这些驱动程序使用特定于它们连接到的数据源的本地客户端库。
Oracle的OCI(Oracle呼叫接口)客户端驱动程序是类型2驱动程序的示例。

缺点

  • 由于需要本机库,因此存在平台依赖性。

  • JDBC调用使用本机库转换为本机调用,这使其成为慢速驱动程序,尽管不如类型1驱动程序慢。

  • 必须在客户端计算机上安装本机API。

类型2 JDBC驱动程序

类型3 JDBC驱动程序

在类型3中,JDBC驱动程序客户端是用Java编写的,它使用数据库独立协议连接到中间件服务器。中间件服务器将来自客户端的JDBC调用转换为供应商特定的DB调用,然后转发到数据源。

缺点

  • 需要一个中间件服务器。

  • 由于有两个阶段;对中间件服务器的JDBC调用,然后是供应商特定的翻译和与DB的通信,因此JDBC调用处理需要更多时间。

类型3 JDBC驱动程序

类型4 JDBC驱动程序

类型4 JDBC驱动程序完全用Java编写,不需要任何本机代码库或者中间件服务器。 类型4驱动程序为特定数据源实现网络协议,并直接连接到数据源。

类型4 JDBC驱动程序也称为瘦驱动程序

缺点

  • 由于驱动程序本身实现了供应商特定的网络协议,因此类型4驱动程序是DB特定的,并且通常由DB供应商提供。