티스토리 뷰

반응형

1. 필수 jar 파일( WEB-INF > lib 폴더에 복사)

commons-dbcp-1.2.2.jar

commons-pool-1.4.jar


2. 이클립스에서 pool.jocl 파일 작성하기(경로 : src > pool.jocl)

:: MySQL ::

<object class="org.apache.commons.dbcp.PoolableConnectionFactory" xmlns="http://apache.org/xml/xmlns/jakarta/commons/jocl">
	<object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
		<string value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8"/>		
		<string value="test"/>		
		<string value="test"/>	
	</object>
	
	<object class="org.apache.commons.pool.impl.GenericObjectPool">	
		<object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />	
	</object>	

	<object class="org.apache.commons.pool.KeyedObjectPoolFactory" null="true"/>	
	
	<string null="true"/>	
	
	<boolean value="false"/>
	
	<boolean value="true"/>
</object>

:: Oracle ::

<object class="org.apache.commons.dbcp.PoolableConnectionFactory" xmlns="http://apache.org/xml/xmlns/jakarta/commons/jocl">
	<object class="org.apache.commons.dbcp.DriverManagerConnectionFactory">
		<string value="jdbc:oracle:thin:@localhost:1521:XE"/>
		<string value="test"/>
		<string value="test"/>
	</object>
	
	<object class="org.apache.commons.pool.impl.GenericObjectPool">
		<object class="org.apache.commons.pool.PoolableObjectFactory" null="true" />
	</object>	
	
	<object class="org.apache.commons.pool.KeyedObjectPoolFactory" null="true"/>
	
	<string null="true"/>
	
	<boolean value="false"/>	
	
	<boolean value="true"/>
</object>


3. 커넥션 풀 초기화(경로 : src > DBCPInit.java)

import java.util.StringTokenizer;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

public class DBCPInit extends HttpServlet{

	@Override
	public void init(ServletConfig config) throws ServletException {
		try{
			String drivers = config.getInitParameter("jdbcDriver");
			StringTokenizer st = new StringTokenizer(drivers, ",");
			
			while(st.hasMoreTokens()){
				String jdbcDriver = st.nextToken();
				Class.forName(jdbcDriver);				
			}
			
			Class.forName("org.apache.commons.dbcp.PoolingDriver");
			
		}catch(Exception e){
			throw new ServletException(e);
		}
	}
	
}

4. web.xml파일에 DBCPInit 등록하기

<servlet>
	<servlet-name>DBCPInit</servlet-name>
	<servlet-class>DBCPInit</servlet-class>
	<init-param>
		<param-name>jdbcDriver</param-name>
		<param-value>com.mysql.jdbc.Driver</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>


5. 커넥션 풀 사용하기

:: test.jsp ::

<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>회원 목록</title>
</head>
<body>
<caption>Member 테이블의 내용</caption>
<table width="100%" border="1">
	<thead>
		<tr>
			<th>이름</th>
			<th>아이디</th>
			<th>이메일</th>
		</tr>
	</thead>
	<tbody>
	<%
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		try{
			String jdbcDriver = "jdbc:apache:commons:dbcp:/pool";
			
			conn = DriverManager.getConnection(jdbcDriver);
			
			pstmt = conn.prepareStatement("select * from ez_member");
			
			rs = pstmt.executeQuery();
			
			while(rs.next()){
	%>
		<tr>
			<td><%= rs.getString("name") %></td>
			<td><%= rs.getString("id") %></td>
			<td><%= rs.getString("email") %></td>
		</tr>
	<%
			}
		}catch(SQLException se){
			se.printStackTrace();
		}finally{
			if(rs != null) rs.close();
			if(pstmt != null) pstmt.close();
			if(conn != null) conn.close();
		}
	%>
	</tbody>
</table> 
</body>
</html>


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함