2010-03-26 1 views
4

현재 응용 프로그램을 Hibernate 3.2에서 Hibernate 3.3으로 업그레이드하는 중입니다. 나는 디폴트가 아닌 풀을 선택하는 좋은 이유가 없기 때문에 디폴트 연결 풀 (Hibernate는 Commons DBCP에서 c3p0으로 디폴트를 변경했다. 적어도 DBCP를 사용했지만 적어도.Spring, Hibernate 3.3 및 c3p0을 사용하여 MySQL 연결 속성을 구성하는 방법은 무엇입니까?

지금까지 아무런 문제없이 업그레이드가 거의 완료되었습니다. 내가 일할 수없는 유일한 이유는 기본 MySQL JDBC4Connection에 속성을 전달하는 것입니다. 지금까지 DBCP의 BasicDataSource.addConnectionProperty(String,String)을 사용하여 속성을 전달했습니다 (useUnicode = true, characterEncodin = UTF-8, characterSetResults = UTF-8, zeroDateTimeBehavior = convertToNull).

그러나 나는 c3p0을 including them in the JDBC URL 이외의 다른 방법으로 찾을 수 없습니다. (사용자가 해당 매개 변수를 포함시키지 않고도 URL을 구성 가능하게 유지하려는 경우 피해야 할 사항입니다.)

지금까지 ConnectionCustomizer을 사용해 보았습니다. 다른 제안?

답변

4

는 다시 한 번 질문을 나 자신 답변 (다른자가 학습자 그래, 제발?!) :

com.mchange.v2.c3p0.ComboPooledDataSource는 속성 "properties"을 가지고있다. 흥미롭게도 사용자와 암호 뒤에 속성을 설정하면 해당 속성이 재정의됩니다. 그러나 사용자 및 암호보다 먼저 속성을 설정하면 예상대로 작동합니다.

1

자체 답을 후속합니다. 이러한 구성의 스프링 방식의 예 :

데이터 소스 콩 :

<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 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> 
관련 문제