4

現在、アプリケーションをHibernate3.2からHibernate3.3にアップグレードしています。デフォルト以外のプールを選択する正当な理由がないため、デフォルトの接続プール(HibernateはデフォルトをCommons DBCPからc3p0に変更しました)を使用します。少なくとも非ですが、以前にDBCPを使用したことがあります。

これまでのところ、アップグレードはほとんど問題なく行われました。私が動作することができない唯一のことは、基礎となるMySQLJDBC4Connectionにプロパティを渡すことです。これまで、DBCPのBasicDataSource.addConnectionProperty(String、String)を使用してプロパティを渡しました(useUnicode = true、characterEncodin = UTF-8、characterSetResults = UTF-8、zeroDateTimeBehavior = convertToNull)。

ただし、 JDBC URLに含める以外に、c3p0で同じことを行う方法を見つけることができません。(これは、ユーザーにこれらのパラメーターを含めることを強制せずにURLを構成可能に保ちたいので、避けたいものです。)

これまで、ConnectionCustomizerを使用しようとしましたが成功しませんでした。他に何か提案はありますか?

4

2 に答える 2

4

もう一度、私が自分自身に答える質問(別の自己学習者?はい、お願いします!):

com.mchange.v2.c3p0.ComboPooledDataSourceには、プロパティ「プロパティ」があります。興味深いことに、ユーザーとパスワードの後に​​プロパティを設定すると、プロパティが上書きされます。ただし、ユーザーとパスワードの前にプロパティを設定すると、期待どおりに機能します。

于 2010-03-26T15:39:29.840 に答える
1

自己回答のフォローアップ。これを構成する春の方法の例:

データソースBean:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
    <property name="properties" ref="mysqlConnectionProperties"></property>
    <property name="driverClass" value="${jdbc.driver}" />
    <property name="jdbcUrl" value="${jdbc.url}" />
    <property name="user" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <!-- c3p0 combo pooled data source settings -->
    <property name="initialPoolSize" value="3" />
    <property name="minPoolSize" value="3" />
    <property name="maxPoolSize" value="50" />
    <property name="maxIdleTime" value="7200" />
    <property name="maxStatements" value="200" />
    <property name="idleConnectionTestPeriod" value="270" />
    <property name="preferredTestQuery">
        <value>SELECT 1</value>
    </property>
</bean>

プロパティBean:

<bean id="mysqlConnectionProperties" class="java.util.Properties">
    <constructor-arg>
        <props>
            <prop key="useTimezone">true</prop>
            <prop key="serverTimezone">America/Chicago</prop>
                <!-- add any other properties you have -->
        </props>
    </constructor-arg>
</bean>
于 2012-03-29T11:12:53.043 に答える