0

我正在尝试将HikariCP与 DB2 一起使用,但出现以下错误:

加载本机库 db2jcct2 失败,java.lang.UnsatisfiedLinkError: db2jcct2

我的类路径中有 db2jcc4.jar 文件,只有它。以及以下 hikari 属性文件:

dataSourceClassName=com.ibm.db2.jcc.DB2SimpleDataSource
dataSource.user=username
dataSource.password=password
dataSource.databaseName=database
dataSource.serverName=server:50000

据我了解,Hikari 尝试使用类型 2 驱动程序,因此它需要本机库 db2jcct2 对吗?如果是,我怎么能含蓄地说寻找类型 4 驱动程序?

更新:建议的答案不能解决我的问题。它可以提供方向,但仅通过阅读该答案我无法得到正确的答案。同时你可以在这个问题的评论中找到答案。

4

2 回答 2

1

这个问题相当于DB2 Type 4 JDBC Driver 为什么要寻找原生库 db2jcct2?

如果您正在配置DataSourcein 代码,则需要执行以下操作:

// Assuming dataSource is a com.ibm.db2.jcc.DB2SimpleDataSource
dataSource.setDriverType(4);

数据源是 javabean。javabean 的约定是一对setXxxx/getXxx代表属性xxxx。所以 settersetDriverType等价于 property driverType

hikari 属性通过定义属性(然后通过反射设置)来配置数据源。要做到等价setDriverType(4),你需要使用属性driverType=4。鉴于该属性文件中使用的约定导致:

datasource.driverType=4
于 2015-06-11T12:44:56.850 回答
0

对于 DB2 类型 4 驱动程序,请尝试以下配置。

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
    <property name="poolName" value="springHikariCP" />
    <property name="dataSourceClassName" value="com.ibm.db2.jcc.DB2SimpleDataSource"/>

    <property name="maximumPoolSize" value="${db.maxTotal}" />
    <property name="dataSourceProperties">
        <props>
            <prop key="driverType">4</prop>
            <prop key="serverName">192.168.xxx.xxx</prop>
            <prop key="databaseName">dbname</prop>
            <prop key="portNumber">50000</prop>
            <prop key="user">db2inst1</prop>
            <prop key="password">password</prop>
        </props>
    </property>

    <property name="jdbcUrl" value="${db.url}" />
    <property name="username" value="${db.username}" />
    <property name="password" value="${db.password}" />
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
    <constructor-arg ref="hikariConfig" />
</bean>
于 2018-07-03T07:31:57.233 回答