Spring Poolable Database Connection

<bean id=”cpmsDS” class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>
<property name=”driverClassName”><value>your.driver.classname</value></property>
<property name=”url”><value>yourDatabaseUrl</value></property>
<property name=”username”><value>yourUsername</value></property>
<property name=”password”><value>yourPassword</value></property>
</bean>

<bean id=”pool” class=”org.apache.commons.pool.impl.GenericObjectPool”>
<property name=”minEvictableIdleTimeMillis”><value>300000</value></property>
<property name=”timeBetweenEvictionRunsMillis”><value>60000</value></property>
</bean>

<bean id=”dsConnectionFactory” class=”org.apache.commons.dbcp.DataSourceConnectionFactory”>
<constructor-arg><ref bean=”cpmsDS”/></constructor-arg>
</bean>

<bean id=”poolableConnectionFactory” class=”org.apache.commons.dbcp.PoolableConnectionFactory”>
<constructor-arg index=”0″><ref bean=”dsConnectionFactory”/></constructor-arg>
<constructor-arg index=”1″><ref bean=”pool”/></constructor-arg>
<constructor-arg index=”2″><null/></constructor-arg>
<constructor-arg index=”3″><null/></constructor-arg>
<constructor-arg index=”4″><value>false</value></constructor-arg>
<constructor-arg index=”5″><value>true</value></constructor-arg>
</bean>

<bean id=”pooledDS” class=”org.apache.commons.dbcp.PoolingDataSource” depends-on=”poolableConnectionFactory”>
<constructor-arg><ref bean=”pool”/></constructor-arg>
</bean>