【问题标题】:implement type 4 jdbc driver in DB2在 DB2 中实现类型 4 jdbc 驱动程序
【发布时间】: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。

【问题讨论】:

    标签: servlets jdbc db2


    【解决方案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

    缺少另一个冒号。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      相关资源
      最近更新 更多