[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>
<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");
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/onj");
// DB에 연결
Connection c = ds.getConnection();
Statement s = c.createStatement();
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;
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();
// 데이터소스와 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) {}
}
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) {}
}
%>
오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
[개강확정강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)
[주말]
[10/26]C#,ASP.NET마스터
[10/26]Spring3.X, MyBatis, Hibernate실무과정
[10/27]JAVA&WEB프레임워크실무과정
[평일야간]
[10/17]SQL초보에서실전전문가까지
[10/22]자바초보에서안드로이드까지
[10/25]C#,ASP.NET마스터
[10/25]Spring3.X, MyBatis, Hibernate실무과정
[주간]
[10/21]Spring3.X, MyBatis, Hibernate실무과정
[주말]
[10/26]C#,ASP.NET마스터
[10/26]Spring3.X, MyBatis, Hibernate실무과정
[10/27]JAVA&WEB프레임워크실무과정
[평일야간]
[10/17]SQL초보에서실전전문가까지
[10/22]자바초보에서안드로이드까지
[10/25]C#,ASP.NET마스터
[10/25]Spring3.X, MyBatis, Hibernate실무과정
[주간]
[10/21]Spring3.X, MyBatis, Hibernate실무과정
댓글 없음:
댓글 쓰기