본문 바로가기
JSP

[JSP] Project에 DBCP(DataBase Connection Pool) 적용하기

by 신입같은 3년차 2017. 9. 15.

안녕하십니까 오늘은 저번 시간에 만든 프로젝트에 Oracle DB 드라이버를 설정하여 커넥션풀까지 설정해보도록 하겠습니다.


일단 Eclipse를 켜서 차근차근 진행해 보겠습니다.


일단 여러분이 알고있는 JDBC와 DBCP 의 기본 개념및 차이에 대해 알아보겠습니다.


JDBC와 DBCP의 정의


JDBC ( Java Data Base Connectivity )

 : 한글로 직역하면 , 자바 데이터 베이스 연결. Database와 연결하기 위한 Java Interface 입니다.


DBCP ( DataBase Connection Pool )

 : DataBase Connection Pool.  간단하게 정리하면 DataBase와 Connection을 맺고 있는 객체를 관리하는 역할



그럼 DBCP를 설정하기 전에 DB를 사용하기 위한 lib를 추가해 보도록 하겠습니다.



Oracle DB가 설치된 경로로 들어가면 다음 이미지와 같은 화면이 보일것입니다
저의 경로 : [ C:\app\yunjin\product\11.2.0\dbhome_1\jdbc\lib ]



여기서 ojdbc6.jar를 선택한추 Ctrl+C , [Project] -> [WebContent] -> [WEB-INF] -> [lib] 폴더안에 Ctrl+V해줍니다



다음과 같이 lib 폴더 밑에 ojdbc6.jar 파일이 추가된 것을 확인할 수 있습니다.


자 그럼 이제 DBCP설정을 해보겠습니다


첫번째로 [ http://tomcat.apache.org/ ] 톰캣 사이트에 접속합니다.





왼쪽 중간쯤에 빨간박스 안에보면 Tomcat Documentation에 대한 종류가 있습니다. 저희가 설치한 톰캣은 8.5이기 때문에 Tomcat8.5를 선택하겠습니다.






왼쪽과 가운데 중앙에 보면 빨간색 박스 보이시죠?? JDBC DataSources 를 선택합니다.


그다음 목차에 보이는 Oracle 8i, 9i & 10g 를 클릭해주세요 그러면 아래쪽으로 이동되면서 이미지와 같은 화면을 보게 됩니다.


자 그러면 설정을 시작하겠습니다.


Context.xml은 Servers 폴더안에 들어있습니다. 그러면 이곳에 설정을 해도 좋을것 같습니다. 하지만 저는 Context.xml을 프로젝트로 따로 복


사해서 설정하겠습니다. 


왜 따로 빼서 하는지 궁금하시죠?? 그 이유는 Servers에 Context.xml을 선언하고 서버를 지웠다가 다시 생성하게 되면 기존에 있던 DBCP설정


들은 유지되지 않고 삭제후 초기설정으로 돌아가게 됩니다. 이말은 즉 Context.xml은 서버설정에 귀속되게 되는거죠 따라서 저는 Project로 


따로 복사해서 진행하겠습니다.







다음 순서에 맞춰서 진행하시면 됩니다.


[Servers] Folder 밑에있는 context.xml을 복사해 [Project] -> [WebContent] -> [META-INF] 에 붙여넣기 해준다음 


<Context></Context> 사이에 있는 내용을 지운뒤 위의 사진 DBCP [1] 번내용을 복사해 붙여넣기 하시면 됩니다.


그다음 url 부분에 있는 설정에 mysid부분을 orcl로 바꿔줍니다. Oracle 설치할때 설정한 sid를 적어주시면 됩니다.


그다음 dbUserName과 UserPassword를 입력해주시면 됩니다. 저는 기본으로 제공되는 scott/TIGER계정을 사용하겠습니다.


Resource의 세부 내용은 정리가 되는대로 추가하도록 하겠습니다.







두번째로 [2]번 코드를 web.xml 파일에 추가해 줍니다.


<주의사항>

<res-ref-name>은 Resource references name의 약자로 태그 안에 들어있는 내용과 context.xml에있는 Resource 태그안에있는 name속성의 


값과 일치해야 합니다.






마지막으로 세번째 코드를 추가한후


제대로 연결되었는지 확인하기위해 Oracle DB에 현재시간을 출력하는 Query를 작성하여 전송하였습니다.


ResultSet을 통해 select를통해 넘어온 결과값을 출력해보았다.


다음과 같이 Console에 conn객체에 대한 정보와 oracle sysdba가 잘 나온것을 확인할 수 있다 따라서 DBCP로 연결이 제대로 된것을 확인할 


수 있습니다.







이로써 DBCP ( DataBase Connection Pool )에대해 알아보았습니다. 예제대로 하면 큰 어려움 없이 설정할 수 있습니다.


다음시간에는 jsp 2.5버전에서는 어노테이션방식을 사용하지않고 web.xml에서 직접 매핑에대한 정보를 작성하기때문에 Servlet를 생성하고 


실행하는 예제에 대해서 진행하겠습니다.

반응형

댓글