내장바구니 | 주문배송조회 | 내적립금
6만원 이상 무료배송
주문하시는
총상품금액의 합계가
6만원 이상일 경우
택배비가 무료입니다.
[JSP] DBCP을 이용한 데이터베이스 연결하기
작성자: 어라    작성일: 2009-07-07 11:17   조회: 14236   댓글: 0
DBCP는 TOMCAT 에서 제공되는 Connection  pool  입니다.


[MySQL 연결방법]
tomcat4.1 과 tomcat5.5 에서 테스트 하였습니다.


1. server.xml 설정

context안에 있는 resource 부분이 디비설정입니다.

<Host name="www.dbtool.co.kr" unpackWARs="true" autoDeploy="true">
<Alias>dbtool.co.kr</Alias>
<Context path="" docBase="D:\home\www.dbtool.co.kr" debug="0" reloadable="true" crossContext="true">
          <Resource name="jdbc/dbtool" auth="Container" type="javax.sql.DataSource"
                          driverClassName="com.mysql.jdbc.Driver"
                          url="jdbc:mysql://localhost:3306/dbtool"
                          username=""
                          password=""
                          maxActive="100"
                          maxIdle="10"
                          removeAbandoned="true"
                          maxWait="5000" />  
</Context>
</Host>

* 위와 같이하면 web.xml은 설정할 필요가 없습니다.



2. 테스트 소스(dbcp.jsp)

<%@ page contentType="text/html;charset=euc-kr" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>

<% 
Connection  con = null; 
try{ 
    Context  ctx  =  new  InitialContext(); 
    DataSource  ds  =  (DataSource)ctx.lookup("java:comp/env/" + "jdbc/dbtool"); 
    con  =  ds.getConnection();
    out.println(con);
}catch (Exception  e)  { 
    out.println(e.toString());

%> 


3. 실행결과(dbcp.jsp)

org.apache.tomcat.dbcp.dbcp.PoolableConnection@10a1d2d

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
위에는 테스트용이고 실제 커넥션 부분은 클래스를 만들어 사용하면 됩니다.

예제>

package kr.co.dbtool.db;

import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class DatabaseConnection
{  
    protected String dsname = null;
    protected Context ctx = null;
    protected DataSource ds = null;
    protected Connection con = null;
 
    public DatabaseConnection(){
        this.dsname = "jdbc/dbtool";
    }
    public DatabaseConnection(String dsname){
        this.dsname = dsname;
    }

    /**
     *기능 : DBCP Pool Connection 정보를 리턴한다
     *@return Connection 정보
     */
    public Connection getConnection(){
        try {
            ctx =  new InitialContext();
            ds = (DataSource)ctx.lookup("java:comp/env/"+dsname);
            con = ds.getConnection();              
            System.out.println(con);
        } catch(SQLException e) {
            System.out.println(e.toString());
        } catch(NamingException ne) {
            System.out.println(ne.toString()+" : ctx => " + ctx);
        }
        return con;
    }
}
 
 
 
 * 관련 댓글 한말씀 부탁합니다.
  작성자:    비밀번호:   (비밀번호는 숫자 4자리이며 본인댓글 삭제시 필요합니다.)
이용약관 | 개인정보취급방침