안녕하세요.
오늘은 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간 연동에있어서 자주쓰이는 방법입니다.
한번은 알아두시면 나중에 좋을것같아요.