6.4 支持的第三方 JDBC 驱动程序

6.4.1 第三方 JDBC 驱动程序的功能

下表汇总了第三方 JDBC 驱动程序的功能:

Table 6-3 第三方 JDBC 驱动程序的功能

驱动程序

是否支持加密传输?

是否支持检索自动生成的密钥?

BEA* Weblogic* jDriver

IBM DB2 UDB 类型 3

IBM DB2 UDB 类型 4

Informix

Microsoft 2000

MySQL Connector/J

Oracle 瘦客户机

PostgreSQL

Sybase jConnect

 

 

 

* 适用于 JDBC 3 (Java 1.4) 及更高版本。

6.4.2 JDBC URL 语法

下表列出了支持的第三方 JDBC 驱动程序的 URL 语法:

Table 6-4 URL 语法

第三方 JDBC 驱动程序

JDBC URL 语法

Oracle 瘦客户机

jdbc:oracle:thin:@ip-address:1521:sid

IBM DB2 UDB 类型 3

jdbc:db2://ip-address:6789/database-name

IBM DB2 UDB 类型 4,通用

jdbc:db2://ip-address:50000/database-name

BEA Weblogic jDriver

jdbc:weblogic:mssqlserver4:database-name@ip-address:1433

Microsoft SQL Server

jdbc:microsoft:sqlserver://ip-address-or-dns-name:1433;DatabaseName=database-name

Sybase jConnect

jdbc:sybase:Tds:ip-address:2048/database-name

MySQL Connector/J

jdbc:mysql://ip-address:3306/database-name

Informix

jdbc:informix-sqli://ip-address:1526/database-name:informixserver=server-id

PostgreSQL

jdbc:postgresql://ip-address:5432/database-name

这些信息需要结合 Authentication Context 参数使用。 有关该参数的信息,请参见鉴定环境

6.4.3 JDBC 驱动程序类名

下表列出了支持的第三方 JDBC 驱动程序的完全限定 Java 类名:

Table 6-5 第三方 JDBC 驱动程序的类名

第三方 JDBC 驱动程序

类名

BEA Weblogic jDriver

weblogic.jdbc.mssqlserver4.Driver

IBM DB2 UDB 类型 3

COM.ibm.db2.jdbc.net.DB2Driver

IBM DB2 UDB 类型 4,通用

com.ibm.db2.jcc.DB2Driver

Informix

com.informix.jdbc.IfxDriver

Microsoft 2000

com.microsoft.jdbc.sqlserver.SQLServerDriver

MySQL Connector/J

org.gjt.mm.mysql.Driver

Oracle 瘦客户机

oracle.jdbc.driver.OracleDriver

PostgreSQL

org.postgresql.Driver

Sybase jConnect 5.5

com.sybase.jdbc2.jdbc.SybDriver

这些信息需要结合 JDBC Driver Class Name 参数使用。 有关该参数的信息,请参见Third-Party JDBC Driver Class Name

6.4.4 Microsoft SQL Server 的 BEA Weblogic jDriver

Table 6-6 BEA Weblogic jDriver

支持的数据库版本:

Microsoft SQL Server 6.5、7.x、8.x (2000)

类名

weblogic.jdbc.mssqlserver4.Driver

类型

4

URL 语法

jdbc:weblogic:mssqlserver4:database-name@ip-address:1433

下载指导

免费注册并下载最新版本的 Weblogic 服务器。 运行安装程序。 weblogic.jar 文件将安装在 install-dir/server/lib 目录中。

BEA 下载中心

文件名

weblogic.jar

文档 URL

jDriver 文档

NOTE:在支持的第三方驱动程序列表中包含了 BEA Weblogic 驱动程序,以提供对 Microsoft SQL Server 7 的 JDBC 访问权限。Microsoft 的驱动程序只支持版本 8 (2000)。

兼容性

BEA Weblogic 驱动程序可以向后兼容。 不需要经常更新数据库服务器和驱动程序。

安全性

BEA Weblogic 驱动程序不支持加密传输。

已知问题

  • BEA Weblogic 驱动程序不是免费的。 必须购买该驱动程序,并合理地获得它的许可证。
  • 包含 UNIQUEIDENTIFIER 列的关联值随驱动程序版本的不同而不同。

    BEA Weblogic 驱动程序的早期版本为本机 UNIQUEIDENTIFIER 列返回非标准的 java.sql.Types 值。 为进行补偿,Driver for JDBC 将该非标准类型映射到标准类型 java.sql.Types.BINARY,因为该标准类型能够最合理地镜像本机数据库类型(16 个字节的值)。 该映射导致生成一个 Base64 编码的关联值。

    BEA Weblogic 驱动程序的较高版本可返回标准类型 java.sql.CHAR。 该映射将导致生成一个非 Base64 编码的关联值,并有效地使通过 BEA Weblogic 驱动程序早期版本生成的所有关联失效。 这种更改实际上会破坏向后兼容性。

    此问题的最佳解决方案是继续使用 BEA Weblogic 驱动程序的早期版本。 如果必须升级,则必须去除所有失效的关联,然后重新关联所有以前关联的对象。

  • 如果在 AIX 上调用 java.sql.Connection.getConnection(String url, String username, String password) 方法,BEA Weblogic 驱动程序将引发 java.lang.IllegalMonitorStateException

6.4.5 IBM DB2 通用数据库 JDBC 驱动程序

IBM DB2 驱动程序可以是类型 3 或类型 4。

类型 3

Table 6-7 IBM DB2 驱动程序: 类型 3

支持的数据库版本:

7.x

类名:

COM.ibm.db2.jdbc.net.DB2Driver

类型

3

URL 语法:

jdbc:db2://ip-address:6789/database-name

下载指导:

从数据库服务器复制文件。

file:///database-installation-directory/java

文件名:

db2java.zip

文档 URL:

DB2 信息中心

JDBC 编程

IMPORTANT:驱动程序类型 3 对于版本 8 已过时。

兼容性

IBM DB2 驱动程序最鲜明的特征是对版本特别敏感。 DB2 的主版本和次版本(包括 FixPack)各不兼容。 因此,建议使用在数据库服务器上安装的文件

IMPORTANT:每次更新目标数据库后,都应该更新 Identity Manager 或远程装载程序服务器上的 IBM DB2 驱动程序,即使只是在 FixPack 级别进行更新。

安全性

IBM DB2 驱动程序不支持加密传输。

已知问题

  • 版本不匹配通常会导致连接性相关的失败。

    IBM DB2 驱动程序最常见问题的原因就是驱动程序的数据库版本不匹配。 版本不匹配表现为连接性相关的失败,例如《CLI0601E 无效的语句句柄,或语句已关闭。》 要修正此问题,请使用数据库服务器上安装的版本重写 Identity Manager 或远程装载程序服务器上的 db2java.zip 文件。

  • 很难诊断和修正数据库服务器上与 Java 相关的错误。

    如果尝试安装和执行以 Java 编写的、用户定义的储存过程和函数,则可能会出现大量的错误条件和错误代码。 诊断这些错误时就会发现这是件费时和费神的事。 日志文件(数据库服务器上的 db2diag.log)往往可以提供其它调试信息。 此外,系统将记录所有错误代码,并在线提供这些代码。

类型 4: 通用驱动程序

Table 6-8 IBM DB2 驱动程序: 类型 4

支持的数据库版本

8.x

类名

com.ibm.db2.jcc.DB2Driver

类型

4

URL 语法

jdbc:db2://ip-address:50000/database-name

下载指导

作为最新 FixPack 的一部分下载(推荐)。

IBM 支持和下载

或者

从数据库服务器复制文件。

file:///database-installation-directory/java

文件名

db2jcc.jardb2jcc_license_cu.jardb2jcc_javax.jar(可选)

文档 URL

DB2 信息中心

DB2 通用 JDBC 驱动程序

DB2 通用 JDBC 驱动程序的安全性

NOTE:与驱动程序类型 3 不同,驱动程序类型 4 只有最少量的一组已定义错误代码。 这种不足制约了 Driver for JDBC 判别连接性、重试、鉴定和致命错误条件的能力。

兼容性

IBM DB2 驱动程序可以向后兼容。 但是,它不能配合数据库版本 7。数据库服务器经常需要更新。 不需要经常更新驱动程序。

安全性

IBM DB2 驱动程序支持各种鉴定安全机制,但不支持加密传输。

已知问题

  • 很难诊断和修正数据库服务器上与 Java 相关的错误。

    如果尝试安装和执行以 Java 编写的、用户定义的储存过程和函数,则可能会出现大量的错误条件和错误代码。 诊断这些错误时就会发现这是件费时和费神的事。 日志文件(数据库服务器上的 db2diag.log)往往可以提供其它调试信息。 此外,系统将记录所有错误代码,并在线提供这些代码。

6.4.6 Informix JDBC 驱动程序

Table 6-9 Informix JDBC 驱动程序

支持的数据库版本

Dynamic Server 7.x、9.x

类名

com.informix.jdbc.IfxDriver

类型

4

URL 语法

jdbc:informix-sqli://ip-address:1526/database-name:informixserver=server-id

下载指导

下载 URL

文件名

ifxjdbc.jarifxjdbcx.jar(可选)

文档 URL

Informix 信息中心

Informix JDBC 驱动程序

兼容性

Informix 驱动程序可以向后兼容。 不需要经常更新数据库服务器和驱动程序。

安全性

Informix 驱动程序不支持加密传输。

ANSI 兼容数据库必需的参数设置

要使 Driver for JDBC 与 ANSI 兼容数据库的 Informix 驱动程序进行互操作,必须显式设置下表列出的驱动程序参数。

Table 6-10 ANSI 兼容数据库的驱动程序设置

显示名称

标签名称

是否支持元数据检索中的纲要?

supports-schemas-in-metadata-retrieval

请参见Supports Schemas in Metadata Retrieval?

false

强制用户名大小写:

force-username-case

请参见Force Username Case

upper

动态参数默认值

下表列出 Driver for JDBC 在运行时隐式设置的驱动程序兼容性参数。 不要覆盖这些设置。

Table 6-11 不要覆盖的 Informix JDBC 设置

显示名称

标签名称

函数返回方法:

function-return-method

请参见Function Return Method

result set

已知问题

  • 不能使用纲要名称来检索 ANSI 兼容数据库上的元数据。 请将驱动程序兼容性参数Supports Schemas in Metadata Retrieval?设置为布尔值 False。 元数据检索可用的数据库对象是鉴定到数据库的数据库用户可以看到的那些对象。 不能使用纲要限定符来标识数据库对象。 因此,要避免命名冲突(例如 owner1.table1、owner2.table1),请只为数据库鉴定用户授予对所同步对象的 SELECT 特权。
  • 如果用户名用于 ANSI 兼容的数据库,这些用户名必须使用大写。 将驱动程序兼容性参数Force Username Case设置为 upper

6.4.7 Microsoft SQL Server 2000 Driver for JDBC

Table 6-12 Microsoft SQL Server 2000 驱动程序设置

支持的数据库版本:

8 (2000)

类名

com.microsoft.jdbc.sqlserver.SQLServerDriver

类型

4

URL 语法

jdbc:microsoft:sqlserver://ip-address-or-dns-name:1433;DatabaseName=database-name

下载指导

Microsoft JDBC 下载

文件名

msbase.jarmssqlserver.jarmsutil.jar

兼容性

SQL Server 2000 驱动程序可以向后兼容。 但是,它不能配合数据库版本 7。不需要经常更新数据库服务器和驱动程序。

安全性

SQL Server 2000 驱动程序不支持加密传输。

URL 属性

使用分号 (;) 分隔 URL 属性。

下表列出了 SQL Server 2000 驱动程序的 SelectMethod URL 属性值。

Table 6-13 SelectMethod URL 属性值

合法值

说明

direct

默认值。 单个连接上不允许多个活动语句

cursor

单个连接上允许多个活动语句

动态参数默认值

下表列出 Driver for JDBC 在运行时隐式设置的驱动程序兼容性参数。 不要显式覆盖这些设置。

Table 6-14 不要覆盖的 SQL Server 2000 设置

显示名称

标签名称

是否重复使用语句?

reuse-statements

false

已知问题

  • 存在复制的连接,无法启动手动事务。

    一个不允许同一连接上存在活动并行语句的实现异常导致 SQL Server 2000 驱动程序遇到最常见的问题。 与其它第三方实现不同,SQL Server 2000 驱动程序的给定连接上,一次只能有一个活动的 java.sql.Statement 对象。

    如果尝试使用多个语句对象,则会发生以下错误: 《存在复制的连接,无法启动手动事务方式。》 仅当驱动程序兼容性参数Reuse Statements?设置为布尔值 True 时,才发生此错误。 最佳做法是永远不要显式设置该参数, 而是照用动态默认值。

    一种替代做法是将定界属性 ;SelectMethod=cursor 放置在 URL 字符串的末尾。 有关此问题的更多信息,请查阅下列支持文章:

  • 包含 UNIQUEIDENTIFIER 列的关联值随驱动程序版本的不同而不同。

    SQL Server 2000 驱动程序的早期版本为本机 UNIQUEIDENTIFIER 列返回非标准的 java.sql.Types 值。 为进行补偿,Driver for JDBC 将该非标准类型映射到了标准类型 java.sql.Types.BINARY,因为该标准类型能够最合理地镜像本机数据库类型(一个 16 位值)。 该映射导致生成一个 Base64 编码的关联值。

    SQL Server 2000 驱动程序的较高版本可返回标准类型 java.sql.CHAR。 该映射将导致生成一个非 Base64 编码的关联值,并有效地使通过 SQL Server 2000 驱动程序早期版本生成的所有关联失效。 这种更改实际上会破坏向后兼容性。

    此问题的最佳解决方案是继续使用 SQL Server 2000 驱动程序的早期版本。 如果必须升级,请去除所有失效的关联,然后重新关联所有以前关联的对象。

6.4.8 MySQL Connector/J JDBC 驱动程序

Table 6-15 MySQL Connector/J JDBC 驱动程序的设置

支持的数据库版本

3.x、4.x

类名

org.gjt.mm.mysql.Driver

类型

4

URL 语法

jdbc:mysql://ip-address:3306/database-name

下载指导

下载并解压缩。 jar 文件位于 extract-dir/mysql-connector-java-version 目录中。

MySQL Connector/J

文件名

mysql-connector-java-version-bin.jar

文档 URL

MySQL Connector/J 文档

通过 SSL 连接

另请参见Generation/Retrieval Method (Table-Global)

兼容性

Connector/J 驱动程序可以向后兼容。 经常需要更新数据库服务器。 不需要经常更新驱动程序。

安全性

Connector/J 驱动程序支持 JSSE(Java 安全套接字扩展)SSL 加密传输。

MyISAM 表必需的参数设置

要使 Driver for JDBC 与 MyISAM 表的 Connector/J 驱动程序进行互操作,必须设置下表列出的驱动程序参数。

Table 6-16 MyISAM 表的设置

显示名称

标签名称

是否使用手动事务?

use-manual-transactions

false

6.4.9 Oracle 瘦客户机 JDBC 驱动程序

Table 6-17 Oracle 瘦客户机设置

支持的数据库版本

8i、9i、10g

类名

oracle.jdbc.driver.OracleDriver

类型

4

URL 语法

jdbc:oracle:thin:@ip-address:1521:sid

下载指导

免费注册并下载。

Oracle 技术网络

版本 1.1 文件名

classes111.zipnls_charset11.zip(可选)

版本 1.2-3 文件名

classes12.zipocrs12.zip(可选)、nls_charset12.zip(可选)

版本 1.4 文件名

ojdbc14.jarocrs12.zip(可选)

文档 URL

Oracle 高级安全性

JDBC 常见问题

兼容性

瘦客户机驱动程序可以向后兼容。 不需要经常更新数据库服务器和驱动程序。

Oracle 为不同的 JVM 发行瘦客户机驱动程序。 即使所有这些驱动程序都可以配合本产品,但建议您使用版本 1.4。

安全性

瘦客户机驱动程序支持 Oracle 高级安全性加密传输。

动态参数默认值

下表列出 Driver for JDBC 在运行时隐式设置的驱动程序兼容性参数。 不要显式覆盖这些设置。

Table 6-18 不要覆盖的 Oracle 客户机设置

显示名称

标签名称

返回的结果集数:

handle-stmt-results

single

连接属性

下表列出了该驱动程序重要的连接属性。

Table 6-19 Oracle 瘦客户机: 连接属性

属性

含义

includeSynonyms

如果该属性的值为 true,则同义词列元数据可用。

ORACLE.NET.ENCRYPTION_CLIENT

定义客户机与服务器协商时所需的安全级别。

ORACLE.NET.ENCRYPTION_TYPES_CLIENT

定义要使用的加密算法。

ORACLE.NET.CRYPTO_CHECKSUM_CLIENT

定义客户机针对数据完整性与服务器协商时所需的安全级别。

ORACLE.NET.CRYPTO_CHEKSUM_TYPES_CLIENT

定义要使用的数据完整性算法。

已知问题

  • 执行嵌入式 SQL 语句触发的 CPU 高利用率:

    该驱动程序遇到的最常见问题是 CPU 利用率较高。 因此,该驱动程序始终指示调用方法 java.sql.Statement.execute(String stmt) 后,有更多可用的结果,从而可能导致无限循环的情况。 仅当发生以下状况同时发生时,才发生这种情况:

    • 正在执行驱动程序兼容性参数Number of Returned Result Sets中除 singlenoone 以外的值。
    • 正在执行嵌入式 SQL 语句。
    • 未显式指定语句的类型。

    要避免发生 CPU 高利用率的情况:

    • 不要显式设置该参数。 照用动态默认值。
    • 始终将 jdbc:type 特性放置在嵌入式 <jdbc:statement> 要素上。

      NOTE:jdbc 名称空间前缀必须映射到 urn:dirxml:jdbc

  • 无法检索同义词列元数据:

    必须将连接属性 includeSynonyms 设置为 true

  • 无法看到同义词表主键约束:

    此问题的唯一已知解决方案是使用视图。

6.4.10 PostgreSQL JDBC 驱动程序

Table 6-20 PostgreSQL JDBC 驱动程序设置

支持的数据库版本

6.x、7.x、8.x

类名

org.postgresql.Driver

类型

4

URL 语法

jdbc:postgresql://ip-address:5432/database-name

下载指导

JDBC 驱动程序下载

文档 URL

JDBC 驱动程序文档

使用 SSL

NOTE:PostgreSQL 的文件名随数据库版本的不同而异。

兼容性

PostgreSQL 驱动程序的最新内部版本可以与服务器版本 7.2 及更高版本向后兼容。 需要经常更新数据库服务器和驱动程序。

安全性

PostgreSQL 驱动程序支持 JDBC 3 驱动程序版本的 SSL 加密传输。

6.4.11 Sybase Adaptive Server Enterprise JConnect JDBC 驱动程序

Table 6-21 Sybase Adaptive Server Enterprise 驱动程序的设置

支持的数据库版本

Adaptive Server* Enterprise 11.x、12.x

类名

com.sybase.jdbc2.jdbc.SybDriver (for jconn2.jar) com.sybase.jdbc3.jdbc.SybDriver(适用于 jconn3.jar)

类型

4

URL 语法

jdbc:sybase:Tds:ip-address:2048/database-name

下载指导

Sybase 下载

文件名

jconn2.jarjconn3.jar

文档 URL

jConnect 文档

兼容性

Adaptive Server 驱动程序可以向后兼容。 不需要经常更新数据库服务器和驱动程序。

安全性

Adaptive Server 驱动程序支持 SSL 加密传输。 要启用 SSL 加密,必须通过 SYBSOCKET_FACTORY 连接属性指定自定义的套接字实现。 有关如何设置连接属性的更多信息,请参见Connection Properties

连接属性

可以使用 SYBSOCKET_FACTORY 属性指定支持加密传输的自定义套接字实现的类名。