- 자카르타 DBCP 는 커넥션 풀 중의 하나이다.

- 커넥션 풀은 데이터베이스와 연결된 커넥션 객체를 미리 생성하여 풀에 저장해 두었다가 필요할 때마다 풀에 접근하여 커넥션 객체를 사용하고, 사용이 끝나면 다시 반환하는 것을 말한다.

- 라이브러리 다운로드 http://commons.apache.org/
 사이트에서 다운로드

※ WAS 에 설정하는 방법은 안좋다. WAS가 바뀌면 다 바꿔야 된다. 그리고 WAS를 띄우지 않으면 테스트 자체가 불가능해진다. 하지만 was에 설정해야 되는 경우가 온다. 그래서 인터페이스로 만들어야 한다.

1. library 파일을 lib 폴더에 복사해 넣는다.
commons-dbcp-1.2.2.jar, commons-io-1.3.2.jar, commons-pool-1.3.jar

2. db.jocl(jocl 확장자 명을 가지는 파일 이름은 상관없음) 파일을 src 폴더 아래에 만든다.

<object class="org.apache.commons.dbcp.PoolableConnectionFactory"
        xmlns="http://apache.org/xml/xmlns/jakarta/commons/jocl">
    <object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
        <string value="jdbc:oracle:thin:@127.0.0.1:1521:XE" />
        <string value="user01" />
        <string value="user01" />
    </object>
   
    <object class="org.apache.commons.pool.impl.GenericObjectPool">
        <object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />
        <int value="10" />
        <byte value="1" />
        <long value="10000" />
        <int value="10" />
        <int value="3" />
        <boolean value="true" />
        <boolean value="true" />
        <long value="600000" />
        <int value="5" />
        <long value="3600000" />
        <boolean value="true" />
    </object>
   
    <object class="org.apache.commons.pool.impl.GenericKeyedObjectPoolFactory"
            null="true" />
   
    <string null="true" />
   
    <boolean value="false" />
   
    <boolean value="true" />
</object>


3. Class 파일에서 설정을 잡아준다.


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class BasicDAO {
 
 private static final String BASIC_DRIVER = "oracle.jdbc.driver.OracleDriver";
 
 private static final String DRIVER = "org.apache.commons.dbcp.PoolingDriver";
 
 private static final String URL = "jdbc:apache:commons:dbcp:/db"; //db는 설정 파일의 이름 나중에 설정을 바꾸고 싶으면 다른 걸 만들어서 넣는다.
 
 static{
  try {
   Class.forName(BASIC_DRIVER);
   Class.forName(DRIVER);
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 
 public Connection getConnection() throws SQLException{
 
  Connection con = null;
  
  con = DriverManager.getConnection(URL);
  
  return con;
  
 }
}

이렇게 설정을 끝내고 테스트를 통해 같은 객체를 만들어 내는지 확인한다.

+ Recent posts