Connection pool 및 오라클 연동 설명..

Web/JSP 2011. 6. 12. 23:18 Posted by Request
was에서 DB 연동 시 최적의 환경을 위한 커넥션 풀을 제공해준다.

그걸 사용하기 위해 기본 설정을 보면..

필요한 Commons 파일은

collections, dbcp, pool 파일이다.

(설치한 아파치 서버에 있으니  lib 폴더에 복사 하기 바란다.)
없으면 링크 ㄱㄱ : http://archive.apache.org/dist/commons/pool/

context 엘리먼트는 특정 가상 호스트 내에서 실행되는 웹 어플리케이션을 나타낸다.
context는 수신된 요청을 처리하기 위해 적절한 서블릿을 선택한다.



1. context.xml 설명
<Context>
<Resouce
name="jdbc/OracleDB" // 불러올 이름
auth="Container"          //권한 설정 [Application | Container ]
/*
Application  : 웹어플리케이션의 프로그램 코드에서 해당 자원 관리자에 서명 지정. 
Container : Container가 어플리케이션의 작동에 따라 서명 할지 지정. 
*/
driverClassName ="oracle.jdbc.driver.OracleDriver"
type ="javax.sql.DataSource"
url ="jdbc:oracle:thin:@localhost:1521:orcl"
username ="scott"
password = "tiger"
maxActive = "20"          // 최대 활성화 20
maxldle ="10"              // 최대 활성화가 넘으면 10씩 늘어남
maxWait ="-1"             //즉시 실행
/>
</Context>




2.web.xml 설명
<resource-ref>
<description>ConntectionPool</description>
<res-ref-name>jdbc/OracleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>



3.DAO.java 설명
Connection con;
PreparedStatement pstmt;
ResultSet rs;
...

Context init = new InitialContext();
DataSource ds =
            (DataSource)init.lookup("java:comp/env/jdbc/OracleDB");
con = ds.getConnection();


public List getBoardList(){
     String board_list_sql="select * from EMP";
       
         List list = new ArrayList();

try{
         pstmt = con.prepareStatment(board_list_sql);
         rs = pstmt.executeQuery();

        while(rs.next()){
             BoarBean board = new BoardBean();
             board.setBOARD_NUM(rs.getInt("EMPNO"));
             board.setBOARD_NAME(rs.getInt("EMPNAME"));
             list.add(board);
         }

} catch (SQLException e) {
   // TODO Auto-generated catch block
   System.out.println("getBoardList 에러 : "+ e);
  }finally{
   if(rs!=null) try{rs.close();}catch(SQLException e){}
   if(pstmt!=null)try{rs.close();}catch(SQLException e){}
  }

return list;
}