본 강좌는 Eclipse J2EE, Tomcat 6.0 과 My-SQL 기준으로 작성된 것임을 미리 알려드립니다.
그리고 Tomcat의 버전이 맞지 않으면 설정 환경이 조금씩 다를 수 있다는 것 또한 알려드립니다.
1. 첨부된 파일은 받는다. (Link)
2. 다음 순서대로 받은 파일들을 해당 폴더에 넣는다.
![java2](http://youngman.kr/wp-content/uploads/2012/11/java2.png)
commons-collections-3.1.jar
commons-dbcp-1.2.1.jar
commons-pool-1.2.jar
이 파일들을 자신이 이클립스에서 만들어둔 프로젝트/WebContent/WEB-INF/lib 폴더에 복사한다..
mysql-connector-java-3.0.14-production-bin.jar
그리고 위의 JDBC 라이브러리는 설치된 톰캣의 lib 폴더 안에 복사한다.
3. 프로젝트/WebContent/META-INF 폴더에 context.xml 파일을 생성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?xml version="1.0" encoding="UTF-8"?> <Context path="/프로젝트명" docBase="프로젝트명" reloadable="true"> <WatchedResource>WEB-INF/web.xml</WatchedResource> <Resource name="jdbc/임의의 DBCP명" auth="Container" type="javax.sql.DataSource" driverClassName="드라이브명" url="DB URL" username="DB 아이디" password="DB 비밀번호" <!-- 사용 하고 있는 커넥션의 최대수 --> maxActive="20" <!-- 사용 안하고 있는 커넥션의 최대수 --> maxIdle="10" <!-- 커넥션을 열기위해 최대 기다리는 시간 "-1" 이라면 무기한 기다림 --> maxWait="-1" /> </Context> |
4. 프로젝트/WebContent/WEB-INF 폴더에 web.xml 파일의 web-app 태그 안에 코드를 추가한다.
| <web-app .... 이하 중략...> <resource-ref> <description>MySQL DB Connection</description> <res-ref-name>jdbc/임의의 DBCP명</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> |
5. DBCPTest.jsp 실행하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <%@ page contentType="text/html; charset=euc-kr" %> <%@ page import="java.sql.*, javax.naming.*, javax.naming.Context, javax.naming.InitialContext, javax.sql.DataSource" %> <html> <head> <title>DBCP Test</title> </head> <body> <% Statement stmt = null; ResultSet rs = null; Connection conn = null; try { Context initCtx = new InitialContext(); Context envCtx = (Context)initCtx.lookup("java:/comp/env"); DataSource ds = (DataSource)envCtx.lookup("jdbc/임의의 DBCP명"); conn = ds.getConnection(); out.write("DBCP Connection..<br><br>"); String sQuery = "select 1 + 1"; stmt = conn.createStatement(); rs = stmt.executeQuery(sQuery); while (rs.next()) { out.write("1 + 1 = " + rs.getString(1) + "<br>"); } } catch(Exception ex) { ex.printStackTrace(); } finally { if (rs != null) try {rs.close(); } catch (Exception ex2) {} if (stmt != null) try {stmt.close(); } catch (Exception ex3) {} if (conn != null) try {conn.close(); } catch (Exception ex4) {} } %> </body> </html> |
6. 결과 화면
![java2_1](http://youngman.kr/wp-content/uploads/2012/11/java2_1.png)
출처 : http://youngman.kr/?p=1025