This article illustrates the steps to use Oracle Universal Connection Pool (UCP) with the Spring framework, using a sample application built using the JDBC template.
Assume there is a simple table EMP in the database with a single column “name” that is loaded with employee information (i.e., employee names).
Consider the following example DAO class in the package “test”:
The following is an example of the Row mapper implementation class for the EMP table:
The following class is the example of a java class that uses the JDBC Template for implementing the business logic:
The XML configuration file should specify UCP’s oracle.ucp.jdbc.PoolDataSourceImpl as the data source class along with relevant connection pool properties, such as the initial-pool-size, max-pool-size, etc. For this sample, the XML configuration file is named “HelloAppConf.xml”.<?xml version=”1.0″ encoding=”UTF-8″?>
<beans xmlns=”http://www.springframework.org/schema/beans”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd”>
<!– Initialization for data source –>
<bean id=”dataSource” class=”oracle.ucp.jdbc.PoolDataSourceImpl”>
<property name=”connectionFactoryClassName” value=”oracle.jdbc.pool.OracleDataSource”/>
<property name=”URL” value=”jdbc:oracle:thin:@//host:port/service_name”/>
<property name=”user” value=”scott”/>
<property name=”password” value=”tiger”/>
<property name=”maxPoolSize” value=”10″/>
<property name=”initialPoolSize” value=”5″/>
</bean>
<!– Definition for EmpJDBCTemplate bean –>
<bean id=”EmpJDBCTemplate” class=”test.EmpJDBCTemplate”>
<property name=”dataSource” ref=”dataSource”/>
</bean>
</beans>
The main application code looks like the following. The application using the JDBC template will internally use the Universal Connection Pool (UCP) for connection check-outs and check-ins.