2012-07-16 13 views
5

私は春と休止状態のスタンドアロンアプリケーションを使用しています。私は以下の設定を使用しています。SpringのDriverManagerDataSourceは多くの接続を開きますか?

<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="${driverClassName}" /> 
     <property name="url" value="${db.url}" /> 
     <property name="username" value="${db.username}" /> 
     <property name="password" value="${db.password}" /> 
    </bean> 

    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.some.SomePojo</value> 
      </list> 
     </property> 

     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${mdm.db.dialect}</prop> 

      </props> 
     </property> 
    </bean> 


    <tx:annotation-driven transaction-manager="transactionManager" /> 

    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

is DriverManagerDataSourceは、データが要求されるたびにデータベース接続を開きますか?または既に開いている接続を再利用していますか?また、アイドル状態の接続を閉じますか?接続プーリングの概念を利用するには、私はc3p0が必要ですか?

ありがとうございます!

+0

http://stackoverflow.com/questions/4961173/how-to-reuse-the-same-connection-with-a-springs-jdbctemplate – coderz

答えて

5

java doc states;

このクラスは実際の接続プールではありません。実際には接続をプールしません。

は、より多くの情報を参照してください

http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/datasource/DriverManagerDataSource.html

+0

お返事をありがとうございます。スタンドアロンアプリケーションでc3p0を使用できますか?またはそれはWebアプリケーションで使用する必要がありますか? bcaz私のapplnはどんなアプリケーションサーバーにもデプロイされていません。ありがとう! – user1016403

+0

3つのオプションがあります。 1コンテナベースの接続プールJNDIを使用するか、2 c3poを使用するか、または3 DBCPを使用する。私はあなたの春の設定をよりシンプルに保つオプション1に行くだろう –

関連する問題