2013년 10월 19일 토요일

[JSP를 이용한 JNDI DataSource 예제] 아래 내용은 /web context명/META-INF/context.xml에 저장하자.

[JSP를 이용한 JNDI DataSource 예제]
 
아래 내용은  <webapps>/web context명/META-INF/context.xml에 저장하자.
 
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/onj" 
              auth="Container"
              type="javax.sql.DataSource" 
              username="SCOTT" 
              password="TIGER"
              driverClassName="oracle.jdbc.driver.OracleDriver"
              url="jdbc:oracle:thin:@127.0.0.1:1521:ONJ"
              validationQuery="select 1 from dual"
              maxActive="10" 
              maxIdle="2"/>
</Context>
 
자바 프로그램에서는 아래와 같이 데이터소스에 접근하면 된다.
 
// Get DataSource
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/onj");
 
// DB에 연결
Connection c = ds.getConnection();
Statement s = c.createStatement();
 
[datasource.jsp]

<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%

    // JNDI 부터 DataSource 얻자
    Context ctx = new InitialContext();
    DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/onj");
 
    Connection conn = null;
    Statement stmt = null;
 
    try {
        // 데이터소스와 DB연결해서 명령객체를 가지고 오자.
        conn = ds.getConnection();
        stmt = c.createStatement();
    
        // 쿼리문 실행
        try {
    
            // Create a statement and execute the query on it
            stmt.execute("select * from emp");
    
            // 결과레코드및 메타데이터
            ResultSet r = stmt.getResultSet();
            while (r.next()) {
                    out.println("<BR />" + r.getString("empno")); 
                    out.println("<BR />" + r.getString("ename"));               
            }
    
            // Clean up
            stmt.close();
            conn.close();
    
        } catch (SQLException se) {
            out.println(se.toString());
        } catch (Exception e) {
            out.println(e.toString());
        }
    
    } finally {
       
        try { if(stmt != null) stme.close(); } catch (Exception e) {}
        try { if(conn != null) conn.close(); } catch (Exception e) {}
    }
%>

댓글 없음:

댓글 쓰기