用于HikariCP + Spring + MS SQL Server的JTDS配置

cur*_*us1 6 spring jtds hikaricp

我一直在谷歌搜索JTDS(1.3.1)的配置,以便与HikariCP(2.4.3),Spring(4.1.2)和MS SQL Server(2008)一起使用,但无法找到完整且有效的示例.

这是我有的:

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
    <constructor-arg ref="hikariConfig" />
</bean> 

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
    <property name="poolName" value="springHikariCP" />
    <property name="connectionTestQuery" value="SELECT 1" />
    <property name="dataSourceClassName" value="${jdbc.dataSourceClassName}" />
    <property name="maximumPoolSize" value="${jdbc.maximumPoolSize}" />
    <property name="minimumIdle" value="${jdbc.minimumIdle}" />
    <property name="idleTimeout" value="${jdbc.idleTimeout}" />
    ....
    <property name="dataSourceProperties">
        <props>
            ....
        </props>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

那里的任何人都可以共享生产环境中使用的JTDS配置吗?

问候.

UPDATE

我找到了这个帖子:

HikariCP挂在getConnection上

似乎JTDS在使用HikariCP时遇到了问题.实际上,我也有这个问题.这是我对JTDS的完整配置:

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
    <constructor-arg ref="hikariConfig" />
</bean> 

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
    <property name="poolName" value="springHikariCP" />
    <property name="connectionTestQuery" value="${jdbc.connectionTestQuery}" />
    <property name="dataSourceClassName" value="${jdbc.dataSourceClassName}" />
    <property name="maximumPoolSize" value="${jdbc.maximumPoolSize}" />
    <property name="minimumIdle" value="${jdbc.minimumIdle}" />
    <property name="idleTimeout" value="${jdbc.idleTimeout}" />
    <property name="connectionTimeout" value="${jdbc.connectionTimeout}" />
    <property name="jdbcUrl" value="${jdbc.url}" />
    <property name="dataSourceProperties">
        <props>
            <prop key="user">${jdbc.username}</prop>
            <prop key="password">${jdbc.password}</prop>
            <prop key="cacheMetaData">${jtds.cacheMetaData}</prop>                              
        </props>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

这正是我发布问题的原因,我希望看到一个完整的例子.但是,在HikariCP的页面上,JTDS被列为支持.我很迷惑.

rod*_*ded 5

以下工作:

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close" depends-on="flyway">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="connectionTestQuery" value="SELECT GETDATE()"/>
    <property name="maximumPoolSize" value="32"/>
    <property name="jdbcUrl" value="${dbUrl}"/>
    <property name="username" value="${dbUsername}"/>
    <property name="password" value="${dbPassword}"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

请注意connectionTestQuery所需的属性,因此 Hikari 不会假定驱动程序符合 JDBC4(jTDS 符合 3.0)。