IT/Jsp

jsp - 커넥션 풀링 사용 코드 (DBCP)

노마드오브 2018. 11. 14. 16:51

*라이브러리 다운로드 저장

WEB-INF/lib/tomcat-dbcp.jar



*META-INF/context.xml

<Context>

<Resource name="jdbc/oracle"

  auth="Container"

  type="javax.sql.DataSource"

  driverClassName="oracle.jdbc.driver.OracleDriver"

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

  username="jspid"

  password="jsppass"

  maxActive="50"

  maxIdle="20" />

</Context>



MyOracle.java

package com.db;


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;


import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;


public class MyOracle {

// 드라이버 클래스 이름

public static final String DRIVER_NAME = "oracle.jdbc.driver.OracleDriver";

// DB 연결정보

public static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:xe";

public static final String USER = "jspid";

public static final String PWD = "jsppass";

// DB연결 메소드

public static Connection getConnection() throws Exception {

    // 커넥션 풀링을 위한 라이브러리 다운로드. 톰캣 tomcat-dbcp.jar

    // http://commons.apache.org/

    // DBCP, Pool, logging 3가지 다운로드

    // DBCP(DataBase Connection Pooling)

Connection con = null;

/*

// 1 드라이버 로딩

Class.forName(DRIVER_NAME);

// 2 DB연결

con = DriverManager.getConnection(URL, USER, PWD);

*/

// 커넥션 풀링 사용 코드

Context context = new InitialContext();

DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/oracle");

con = ds.getConnection(); // 커넥션을 빌려온다.

return con;

} // getConnection()의 끝


public static void closeJDBC(Connection con, 

PreparedStatement pstmt, ResultSet rs) {

if (rs != null) {

try {

rs.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (pstmt != null) {

try {

pstmt.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if (con != null) {

try {

con.close();

// 커넥션 풀링을 썼을 때 close() 동작은

// 빌려온 커넥션을 닫지 않고 반납함.

} catch (SQLException e) {

e.printStackTrace();

}

}

} // closeJDBC()의 끝

}