在 DB2 中实现类型 4 jdbc 驱动程序
Posted
技术标签:
【中文标题】在 DB2 中实现类型 4 jdbc 驱动程序【英文标题】:implement type 4 jdbc driver in DB2 【发布时间】:2013-01-25 16:55:45 【问题描述】:在我的项目中,我在我设置的 context.xml 和 servlet.xml 中使用了一些配置
<ResourceLink
global="jdbc/mydatasource"
name="jdbc/mydatasource"
type="javax.sql.DataSource" />
<Resource
name="jdbc/mydatasource"
auth="Container"
type="javax.sql.DataSource"
username=" DATABASE_USERNAME"
password=" DATABASE_PASSWORD"
driverClassName="com.ibm.db2.jcc.DB2Driver"
url="jdbc:db2://IP:port/DBname" />
并通过将其包含在我的 servlet 中来使用它
datasource = (DataSource) envContext.lookup("jdbc/mydatasource");
但我想知道什么类型的驱动程序(类型 2、4 等)。我已经在应用程序中导入了 db2jcc.jar。
【问题讨论】:
【参考方案1】:谷歌搜索 DB2 type 4 驱动程序给了我这个 IBM 页面:Understand the DB2 UDB JDBC Universal Driver(从 2005 年开始)。阅读本文清楚地表明db2jcc.jar
是通用驱动程序,它既是 Type 2 驱动程序,也是 Type 4 驱动程序。你使用什么取决于你指定的 JDBC url:
对于类型 4:
jdbc:db2//服务器:端口/数据库 jdbc:db2//服务器/数据库对于类型 2:
jdbc:db2:数据库请注意,根据此站点,您还需要在类路径中使用 db2jcc_license_cu.jar
才能使 Type 4 驱动程序正常工作。
【讨论】:
@Mark-我在我的代码中使用了jdbc:db2//server:port/database
语句,但客户说不要像jdbc:db2//port/database
这样使用它,使其成为Type 4,我没有包含db2jcc_license_cu.jar文件也,bcoz没有它在代码中问我的地方......
@Ars 我自己不使用 DB2,但 jdbc:db2//port/database
没有意义,除非 1) 驱动程序支持省略主机名(这不太可能)和 2) 数据库正在运行本地主机。【参考方案2】:
Java 有DatabaseMetaData
interface,它可能包含您正在寻找的信息。我不是 Java 人,但getDriverMajorVersion()
可能会返回您要查找的内容。
【讨论】:
这只会返回驱动程序的主要版本,而不是 JDBC 类型。【参考方案3】:这个网址实际上是不正确的:
对于Type4:
jdbc:db2://server:port/database jdbc:db2://server/database缺少另一个冒号。
【讨论】:
以上是关于在 DB2 中实现类型 4 jdbc 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
加载 DB2 JDBC 驱动程序时出现 java.lang.UnsatisfiedLinkError
使用 Db2Mon 有没有办法区分使用类型 2 和类型 4 驱动程序连接的客户端?