 Debian Linux의 Tomcat에서 PostgreSQL Connection Pool 설정하는 방법을 정리해보았습니다. Tomcat 은 이미 설치되어 있고, 웹루트 디렉토리도 만들어져 있다고 가정하겠습니다. ## PostgreSQL 설치 ## # apt-get install postgresql-8.3 postgresql-server-dev-8.3 ## 사용자, DB 생성 ## # su - postgres # psql template1=# CREATE USER 아이디 WITH PASSWORD '비밀번호'; template1=# CREATE DATABASE 디비이름 WITH ENCODING='utf-8' OWNER 아이디; ## 계정으로 로그인할 수 있도록 연결설정 ## # su - # cd /etc/postgresql/8.3/main/ # vi pg_hba.conf 모두 주석으로 막고 아래만 남김 host all all 0.0.0.0 0.0.0.0 password local all postgres trust local all all password # /etc/init.d/postgresql-8.3 restart ## 테스트용 테이블 생성 ## CREATE TABLE tb_admin ( id Serial NOT NULL, login Varchar(20) NOT NULL UNIQUE, passwd Varchar(20) NOT NULL, name Varchar(20) NOT NULL, register_date Date NOT NULL, login_datetime Timestamp, status_code Varchar(4), email Varchar(40), mobile_phone Varchar(20), PRIMARY KEY (id) ) Without Oids; INSERT INTO tb_admin(login, passwd, name, register_date, status_code, email, mobile_phone) VALUES('honggildong', 'ajtwlddl', '홍길동', '2009-11-03', '0000', '[email protected]', '010-2222-5555'); INSERT INTO tb_admin(login, passwd, name, register_date, status_code, email, mobile_phone) VALUES('jangnara', 'dlQmsdl', '장나라', '2009-11-03', '0000', '[email protected]', '010-3746-7665'); ## PostgreSQL JDBC Driver 설치 ## http://jdbc.postgresql.org/ 에서 다운로드 한다. Debian Linux 에서는 다음과 같이 설치한다. /usr/share/java 에 설치된다. # apt-get install libpg-java JDBC Driver 를 $CATALINA_HOME/common/lib 에 복사한다. Debian 의 Tomcat6 에서는 /usr/share/tomcat6/lib 에 복사한다. # cd /usr/share/java # cp postgresql-jdbc3-8.4.jar /usr/share/tomcat6/lib/ ## Tomcat 설정 ## server.xml 의 태그 안쪽에 다음을 추가한다. web.xml 에 다음을 추가한다. PGSQL DB Connection jdbc/DBName javax.sql.DataSource Container ## 테스트 코드 (index.jsp) ## JSP 코드를 다음과 같이 작성한다. 관련 DB와 테이블은 작성되어 있어야 합니다. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ page import="javax.sql.*" %> <%@ page import="javax.naming.*" %> DB Test <% 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 id, login, passwd, name, register_date, login_datetime, status_code, email, mobile_phone from tb_admin"); while(rs.next()) { out.println("ID: " + rs.getString("id")); out.println(", Login: " + rs.getString("login")); out.println(", Password: " + rs.getString("passwd")); out.println(", Name: " + rs.getString("name")); out.println(", Register Date: " + rs.getString("register_date")); out.println(", Login Datetime: " + rs.getString("login_datetime")); out.println(", Status Code: " + rs.getString("status_code")); out.println(", E-Mail: " + rs.getString("email")); out.println(", Mobile Phone: " + rs.getString("mobile_phone") + "
"); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { out.println("
SQL Exception: " + e + "
"); } %> JSTL 을 이용하는 경우에는 $CATALINA_HOME/common/lib (/usr/share/tomcat5.5/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" %> select id, login, passwd, name, register_date, login_datetime, status_code, email, mobile_phone from tb_admin DB 테스트 ID: ${row.id}, Password: ${row.passwd}, Name: ${row.name}, Register Date: ${row.register_date}, Login Datetime: ${row.login_datetime}, Status Code: ${row.status_code}, E-Mail: ${row.email}, Mobile Phone: ${row.mobile_phone}