2011-03-31 2 views
1

Spring3、Hibernate、MySQL:私の最初のプロジェクトに取り組んでいますが、データベースプーリングを追加するために次のコードを変更する方法を教えてください。おかげデータベースプールの追加 - Spring3、Hibernate、MySQL

ApplicationContextのセキュリティ-jdbc.xmlの

<beans:bean class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
      <beans:property name="driverClassName" value="${database.driver}" /> 
      <beans:property name="url" value="${database.url}" /> 
      <beans:property name="username" value="${database.user}" /> 
      <beans:property name="password" value="${database.password}" /> 
     </beans:bean> 

jdbc.properties

database.driver=com.mysql.jdbc.Driver 
database.url=jdbc:mysql://127.0.0.1/db_mytest 
database.user=root 
database.password= 
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect 
hibernate.show_sql=true 

感謝....再び

+0

どのようなアプリケーションサーバーを使用していますか? – sourcedelica

答えて

2

commons-dbcpを使用することをおすすめします。 jarをダウンロードしてWEB-INF/libディレクトリに追加する必要があります(まだアプリケーションサーバーに含まれていない場合)。これは新しいapplicationContext.xmlで、デフォルトのパラメータをいくつか変更して、必要に応じて変更する必要があります。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="${database.driver}" /> 
    <property name="url" value="${database.url}" /> 
    <property name="username" value="${database.username}" /> 
    <property name="password" value="${database.password}" /> 
    <property name="timeBetweenEvictionRunsMillis" value="300000" /> 
    <property name="numTestsPerEvictionRun" value="6" /> 
    <property name="minEvictableIdleTimeMillis" value="1800000" /> 
    <property name="initialSize" value="3" /> 
    <property name="maxActive" value="10" /> 
    <property name="maxIdle" value="10" /> 
    <property name="maxWait" value="5000" /> 
    <property name="poolPreparedStatements" value="true" /> 
    <property name="maxOpenPreparedStatements" value="100" /> 
</bean> 

希望します。

+0

あなたの設定が私の設定で持っていたものより少ないアクティブな接続を持っていても、 "接続が多すぎます"というエラーが表示されました。今、私が必要としていた設定がどれかを見てください:) – Isaac

+0

それは最初のサイズ – Isaac

0

あなたは、あなたのアプリケーションを実行しているものを指定しませんに。多くのアプリケーションサーバーには、独自の接続プール実装が用意されています。私は過去にTomcatのDBCPを使用しましたが、セットアップは非常に簡単でした。

3

豆豆の定義BoneCPです。これはcommons-dbcpの代わりに使用されます。これはcommons-dbcpより高速です。

<!-- BoneCP configuration --> 
<bean id="mainDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"> 
    <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
    <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1/yourdb" /> 
    <property name="username" value="root"/> 
    <property name="password" value="abcdefgh"/> 
    <property name="idleConnectionTestPeriod" value="60"/> 
    <property name="idleMaxAge" value="240"/> 
    <property name="maxConnectionsPerPartition" value="30"/> 
    <property name="minConnectionsPerPartition" value="10"/> 
    <property name="partitionCount" value="3"/> 
    <property name="acquireIncrement" value="5"/> 
    <property name="statementsCacheSize" value="100"/> 
    <property name="releaseHelperThreads" value="3"/> 
</bean> 
+0

でした。 – SJS

関連する問題