Oracle이 제공하는 OracleDataSource를 이용하여 Connection Pool을 사용하는 예
테스트환경: Oracle 10g, ojdbc14.jar, JDK 6.0
package test;
import java.sql.*;
import javax.sql.PooledConnection;
import oracle.jdbc.pool.OracleConnectionCacheManager;
import oracle.jdbc.pool.OracleConnectionPoolDataSource;
import oracle.jdbc.pool.OracleDataSource;
public class OracleDatasourceTest {
private static OracleDataSource ds;
static {
try{
ds = new OracleDataSource();
ds.setDriverType("thin");
ds.setServerName("localhost");
ds.setPortNumber(1521);
ds.setDatabaseName("orcl"); // sid
ds.setUser("scott");
ds.setPassword("tiger");
ds.setConnectionCachingEnabled(true);
ds.setConnectionCacheName("MyCache");
java.util.Properties sProperties = new java.util.Properties();
sProperties.setProperty("MinLimit", "1");
sProperties.setProperty("MaxLimit", "3");
sProperties.setProperty("ValidateConnection", "true"); // Validates connection before sending to client
ds.setConnectionCacheProperties(sProperties);
OracleConnectionCacheManager occm = null;
occm = OracleConnectionCacheManager.getConnectionCacheManagerInstance();
occm.createCache("MyCache", ds, sProperties);
}catch(Exception e){}
}// end of static block
public static OracleDataSource getDataSource(){
return ds;
}
public static void main(String[] args)throws Exception {
long start = System.currentTimeMillis();
for(int i=0;i<50;i++){
OracleDataSource ds = getDataSource();
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String sql = "select empno, ename from emp where empno=7369";
ResultSet rs = stmt.executeQuery(sql);
int empno = 0;
String ename = null;
while(rs.next()){
empno = rs.getInt("EMPNO");
ename = rs.getString("ENAME");
}
rs.close();
stmt.close();
conn.close();
}
long end = System.currentTimeMillis();
System.out.println("경과시간:"+(end-start));
}
}