목차

Connection Pool 설정하기

JDBC Driver 설정

  1. JDBC Driver 를 $CATALINA_HOME/common/lib 에 복사한다.
  2. $CATALINA_HOME 이 설정이 되어 있지 않다면 tomcat 계정의 홈디렉토리가 $CATALINA_HOME 이다.
  3. Oracle과 연동을 하려면 다음 파일을 tomcat 계정아래 common/lib 아래 복사한다.
    # cp classes12.jar ~tomcat55/common/lib/
    # cp ojdbc14.jar ~tomcat55/common/lib/

User별 library 설정

  1. 사용자별로 lib 설정을 할 수 있다.
  2. Web Content 아래에 WEB-INF/lib 아래에 JDBC Driver(classes12.jar , ojdbc14.jar 등)을 복사한다.

server.xml 설정

  1. server.xml 의 <Context> 태그 안쪽에 다음을 추가한다.
              <Resource name="jdbc/DBName"
                        auth="Container"
                        type="javax.sql.DataSource"
                        driverClassName="com.mysql.jdbc.Driver"
                        loginTimeout="10"
                        maxWait="5000"
                        username="아이디"
                        password="비밀번호"
                        testOnBorrow="true"
                        url="jdbc:mysql://localhost:3306/디비이름" />
  2. web.xml 에 다음을 추가한다.
        <resource-ref>
            <description>MySQL DB Connection</description>
            <res-ref-name>jdbc/DBName</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
        </resource-ref>
  3. JSP 코드를 다음과 같이 작성한다. 관련 DB와 테이블은 작성되어 있어야 합니다.
    <%@ page contentType="text/html;charset=utf-8" session="true" %>
    <%@ page import="java.sql.*" %>
    <%@ page import="javax.sql.*" %>
    <%@ page import="javax.naming.*" %>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>테스트</title>
    </head>
    <body>
    <%
    DataSource   ds = null;
    Connection conn = null;
    Statement  stmt = null;
    ResultSet    rs = null;
    
    try {
        Context initCtx = new InitialContext();
        Context envCtx = (Context) initCtx.lookup("java:comp/env");
        ds = (DataSource) envCtx.lookup("jdbc/DBName");
        conn = ds.getConnection();
        stmt = conn.createStatement();
        rs  = stmt.executeQuery("select code_class_id, code_class_name from tb_code_class");
        while(rs.next()) {
            out.println("Code Class ID: " + rs.getString("code_class_id"));
            out.println(", Code Class Name: " + rs.getString("code_class_name") + "<br />");
        }
        rs.close();
        stmt.close();
        conn.close();
    } catch (Exception e) {
        out.println("<br /><font color='red'>SQL Exception: " + e + "</font><br/>");
    }
    %>
    </body>
    </html>

JSTL 설정

  1. JSTL 을 이용하는 경우에는 $CATALINA_HOME/common/lib 에 standard.jar, jstl.jar 파일을 복사하고 코드를 다음과 같이 작성합니다.
    <%@ page contentType="text/html;charset=utf-8" session="true" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <sql:query var="rs" dataSource="jdbc/DBName">
    select code_class_id, code_class_name from tb_code_class
    </sql:query>
    
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <title>테스트</title>
      </head>
      <body>
    
    <c:forEach var="row" items="${rs.rows}">
        ID ${row.code_class_id}<br/>
        Name ${row.code_class_name}<br/><br/>
    </c:forEach>
    
      </body>
    </html>