본문 바로가기
개발/DB 커넥션

[JSP, ORACLE] 연결 테스트 예제 (JNDI) (톰캣셋팅)

by 언제나초심. 2010. 7. 20.
반응형

개요

톰캣 에서 Oracle 관련 커넥션 설정입니다.



(@todo JDBC 연결인데, JNDI 라고 적어뒀었네. 이유가 뭐였지...)


1. 톰캣 lib 폴더에 추가.


다음의 파일들을 lib 폴더에 추가해줍니다.

  commons-collections-3.1.jar
  commons-dbcp-1.2.1.jar
  commons-pool-1.2.jar
  ojdbc14.jar



[추가할 Lib 파일 첨부] (가능하다면, 최신 버전으로 구해서 받으시길 권장합니다)

commons-collections-3.1.jar

commons-dbcp-1.2.1.jar
commons-pool-1.2.jar
ojdbc14.jar




2. 사이트/Context명.xml 에 추가

톰캣 conf/Catalina/Context명.xml 에 다음을 추가

 (참고 : 보통 톰캣 설치 경로의 conf 폴더 하위에 찾아보면, 각 사이트명 별로 폴더가 있고 그 하위에 Root.xml 이 있습니다. 어플리케이션의 구조도에 따라서 다른 명칭의 xml 파일이 있을 수 있습니다. )


<Context ~~>
    <Resource name="jdbc/JDBC명아무거나"
        auth="Container"  
        type="javax.sql.DataSource"
        username="아이디"
        password="패스워드"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@localhost:orcl"
        maxActive="100"  
        maxIdle="30"
        loginTimeout="10"
        maxWait="10000"/>
</Context>



3. 웹문서폴더에서 WEB-INF/web.xml 에 추가


<resource-ref>
    <description>OracleDatasource</description>
    <res-ref-name>jdbc/JDBC명아무거나</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>



4. JSP 소스


<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=utf-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
/*************************************************************************************************************
 * 디비연결 셋팅
 *************************************************************************************************************/
//디비연결 변수[게시물]
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
PreparedStatement pstmt = null;

//디비연결 설정 [START]
String url    = "jdbc:oracle:thin:@localhost:1521:orcl"; 
String user   = "아이디";
String passwd = "패스워드";
//디비연결 설정 [END]

/*************************************************************************************************************
 * 디비연결 및 쿼리 질의 [START]
 *************************************************************************************************************/
try{

 Context initCtx = new InitialContext();
 Context envCtx = (Context)initCtx.lookup("java:/comp/env");
 DataSource ds = (DataSource)envCtx.lookup("jdbc/orclTp");

 conn = ds.getConnection();

 //stmt = conn.createStatement();
 //rs = stmt.executeQuery("select count(*) from dual");

 pstmt = conn.prepareStatement("select count(*) from dual");
 rs = pstmt.executeQuery();

   
 while(rs.next()){ //레코드를 이동시킨다. 
  out.println("While Test");
 }

} finally {
  if (rs != null) try {rs.close(); }catch(SQLException ex) {}
  if (stmt != null) try {stmt.close(); } catch(SQLException ex) {}
  if (conn != null) try {conn.close(); }catch(SQLException ex) {}
}
%>


반응형