<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<html>
<head>
<title> 사용자가 가지고 있는 모든 테이블 보기 </title>
</head>
<body>
<h2>Connection/DataSource/Transaction Test<h2><br><br>
<h3>
<%
Context ctx = null;
DataSource ds = null;
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql = "select * from tab";
try{
//JNDI 서비스를 사용하기위해 초기화 작업을 합니다.
ctx = new InitialContext();
ds = (javax.sql.DataSource)ctx.lookup("ora91");
//ora91 = WAS 설정시 사용했던 JNDI 이름
con = ds.getConnection();
//트랜잭션을 개발자가 통제합니다.
con.setAutoCommit(false);
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
out.println("테이블 리스트<br>");
out.println("----------------------<br>");
while(rs.next()){
out.println(rs.getString(1) + " " + rs.getString(2));
out.println("<br>");
}
//트랜잭션을 적용 합니다.
con.commit();
}catch(Exception e){
//트랜잭션을 취소합니다.
con.rollback();
out.println(e.toString());
}finally{
//원래의 값으로 변경합니다.
con.setAutoCommit(true);
if(rs != null){
try{
rs.close();
}catch(SQLException ex){}
}
if(stmt != null){
try{
stmt.close();
}catch(SQLException ex){}
}
if(con != null){
try{
con.close();
}catch(SQLException ex){}
}
} // finally
%>
</h3>
</body>
</html>