JDBC 기본설정 순서

Published on: 2009. 3. 31. 02:48 by louis.dev

JDBC 기본 설정순서
준비:


ojdbc14.jar 파일 추가(oracle 10g시 쓰는 jar 파일)

<oracle 설정>
url= "jdbc:oracle:thin:@127.0.0.1:1521:XE"
driver= "oracle.jdbc.driver.OracleDriver"
user="사용자에 맞게 설정"
password="사용자에 맞게 설정";


<!--JDBC 연결순서-->
Connection -> Statement -> ResultSet


<!--Connection 맺는 예제-->
Connection DB_Connection() throws ClassNotFoundException, SQLException, Exception
 {
  String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE";
  Class.forName( "oracle.jdbc.driver.OracleDriver" );
  Connection conn = DriverManager.getConnection( url, "scott", "tiger" );
  return conn;
 }

<!--맺은 Connection으로 Statement 생성후 Query문 날리기-->
Connection conn = null;
Statement stmt = null;
//sql문은 String 형으로 선언
String sql = "update TB_MEMBER_BOARD set " +
   "TITLE='" + title + "', " +
   "CONTENTS='" + contents + "' " +
   "where " +
   "SEQ = " + seq;

conn = DB_Connection();                //Connection 생성
stmt = conn.createStatement();        //createStatement(); 사용하여 Statemene stmt를 생성
stmt.executeUpdate( sql );

<!--ResultSet으로 결과값 가져오기-->
ResultSet rs=stmt.executeQuery( sql );
if( rs.next() ) {                                           //검색된 테이블에서 다음 열로 이동 ↓
   board.setWriter(rs.getString(1));
   board.setEmail( rs.getString(2) );
   board.setHomepageUrl( rs.getString(3) );
   board.setTitle( rs.getString(4) );
   board.setContents( rs.getString(5) );
   board.setReadCount( rs.getInt(6) );
   board.setPassword(rs.getString(7));
  }

<!--::필수:: 사용후 항상 close() 사용하여 닫아 주기-->
try { if( stmt  != null ) stmt.close();  } catch ( Exception e ) {}
try { if( conn  != null ) conn.close();  } catch ( Exception e ) {}

<!--::::::::::::::::::::::팁::::::::::::::::::::::::-->
commit은 기본설정으로 true가 되어있음으로 false로 설정하고 나중에 쿼리문을 사용한다음에 commit을 날리는 습관을 들이자.
try {
   conn = DB_Connection();
   conn.setAutoCommit(false);                                          //오토로 설정되어있는것을 false로 줌으로서 auto를 풀어준다.
 
   String sql = "update TB_MEMBER_BOARD set " +
   "TITLE='" + title + "', " +
   "CONTENTS='" + contents + "' " +
   "where " +
   "SEQ = " + seq;
   
    
   stmt = conn.createStatement();
   stmt.executeUpdate( sql );
 
   conn.commit();                                   //커밋을 날린다.
   conn.setAutoCommit(true);                   //트랜잭션 종료
  } catch( Exception e ) {
         conn.rollback();                               //에러발생할 경우 롤백 및 트랜잭션 종료
         conn.setAutoCommit(true);
   out.println( e.toString() );
  } finally {
      try { if( stmt  != null ) stmt.close();  } catch ( Exception e ) {}
      try { if( conn  != null ) conn.close();  } catch ( Exception e ) {}
  }

'Web > JDBC' 카테고리의 다른 글

JDBC-PrepareStatement 사용하기(Statement 대신)  (1) 2009.03.31