Spring 2 JDBC datasource configuration

jdbc, spring

Solution

These properties are not part of Spring but underlying `DataSource` implementation. First you have to include some database pooling library like dbcp:

<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>

Once you added this library you configure the provided `DataSource` implementation:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="username" value="user" />
    <property name="password" value="pwd" />
    <property name="url" value="some:url" />
    <property name="driverClassName" value="some.class.Driver" />
    <property name="initialSize" value="5" />
    <property name="maxActive" value="10" />
    <property name="testOnBorrow" value="true" />
    <property name="validationQuery" value="SELECT 1" />
</bean>

You can also choose different `DataSource` implementations like c3p0. Finally you can obtain `DataSource` configured in your application server, e.g. using jndi. Spring JDBC support uses any `DataSource` implementation provided. Also Spring ships with some very simple `DriverManagerDataSource` intended for testing.

Problem

I am currently looking at an application that uses Spring and Spring JDBC. http://static.springsource.org/spring/docs/2.0.x/reference/jdbc.html I can't find from the doc ways / where to configure settings such as set pool size, re-connection, test on borrow. Am i missing something here? I am new to Spring. Is it that this plain vanilla JDBC option does not allow me to do what is described or is it that i would need something like c3po library?

Original source