본문 바로가기

Paul Work/Oracle

DB 연동 테스트 JSP

<%@ page contentType="text/html;charset=EUC-KR"%>
<%@ 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) + "&nbsp;&nbsp;&nbsp;" + 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>