본문으로 바로가기

[Jsp]커넥션풀(Connection Pool)

category Web 2017. 9. 7. 13:12

안녕하세요.


오늘은 jsp 와 데이터베이스간 연결에있어서 매번 connect 를 연결하는 번거로움을 해결하기위한 db 커넥션풀 사용방법에 대해 알아보겠습니다.


커넥션풀은 jsp 에서 데이터베이스와 미리 연결된 커넥션들을 사용자가 필요할때 사용하고 반환하는 방식이다.


그렇기때문에 커넥션풀을 한번 만들어두면 데이터베이스 작업이 필요할때마다 connect 를 새로 만들필요가없다.


그럼 커넥션풀 사용하는 방법에대해 예제를통해 알아보겠습니다.


우선 커넥션풀을 사용하기 위해선 dbcp가 필요한데요.


dbcp 는 기본적으로 톰켓폴더안에있는 lib 폴더에 있습니다.(tomcat=dbcp.jar)


이 jar 파일을 다이나믹 웹프로젝트의 WEB-INF 안에 lib 에 넣어주세요.


다음 WEB-INF 폴더안에 web.xml 이 필요한데요. 웹xml 안에


  <resource-ref>

    <description>Connection</description>

    <res-ref-name>자신의디비네임</res-ref-name>

    <res-type>javax.sql.DataSource</res-type>

    <res-auth>Container</res-auth>

  </resource-ref>


커넥션을위한 리소스를 만들어줍니다.


그런다음 META-INF 폴더안에 context.xml 이 필요합니다.


context 안에는 


<Context>


<Resource 

   name="디비네임정하기"

   auth="Container" 

   driverClassName="oracle.jdbc.driver.OracleDriver" 

   type="javax.sql.DataSource" 

   url="jdbc:oracle:thin:@127.0.0.1:1521:XE" 

   username="디비아이디"

   password="디비페스웨드" 

   maxActive="20" 

   maxIdle="10" 

   maxWait="-1"  />


</Context>


커넥션풀의 리소스를 정의해줍니다. 컨텍스트파일에 정의된 디비네임을 위 web안의 디비네임과 일치시켜주셔야합니다.


이렇게 web 과 context 를 설정하면 커넥션풀을 사용할 준비가 완료되었습니다.


jsp 페이지에서 연결 확인을 해봅니다.


    Connection conn=null;
    
    Boolean connect=false;
    try{
		Context init = new InitialContext();
		DataSource ds = (DataSource) init.lookup("java:comp/env/junDB");
		
		conn = ds.getConnection();
		connect = true;
    }catch(Exception e){
       connect=false;
       e.printStackTrace();
    }
    
    if(connect){
    	System.out.println("연결o");
    }else{
    	System.out.println("연결x");
    }



커넥션풀은 jsp 와 db간 연동에있어서 자주쓰이는 방법입니다.


한번은 알아두시면 나중에 좋을것같아요.

'Web' 카테고리의 다른 글

[Web] 한줄짜리코드 - 코드 경량화 (minify)  (0) 2020.05.25
[Jsp]jsp와 오라클db 연동  (0) 2017.09.06
[Jsp]자바 빈 사용하기(java bean)  (0) 2017.09.05