'JDBC'에 해당되는 글 1건

  1. 2009.06.24 Java Oracle JDBC 관련 부분...!
Java2009. 6. 24. 19:32


 public void regist(BoardVO boardVO){

//  1. 드라이버 Class 등록
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
  } catch (ClassNotFoundException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
  }

Class.forName에서 클래스 명이 틀릴 경우 Exception 발생...Try Catch로 Exception을 처리해줘야 한다.
  
  Connection conn = null;
  Statement stmt = null;

Connection과 Statement를 선언
  
  try {
   
//   2. 커넥션 생성
   conn = DriverManager.getConnection(dbUrl,dbUserId,dbUserPw);
//   3. statement 생성 
   stmt = conn.createStatement();

//   4. SQL생성
   String sql = "";
    
   sql += " insert into TB_BOARD ";
   sql += " (TITLE, CONTENT, WRITER_NAME, PASSWD, REGIST_DATE, READ_COUNT) ";
   sql += " values ";
   sql += " ('"+boardVO.getTitle()+"','"+boardVO.getContent()+"','"+boardVO.getWriterName()+"','"+boardVO.getPasswd()+"',SYSDATE,0) ";
//   5. 실행
   stmt.executeUpdate(sql);
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } finally {
   try{
    stmt.close();
   } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   }
  }
 }
 
 public List<BoardVO> list(){
  List<BoardVO> boardList = new ArrayList<BoardVO>();
  
  //1. JDBC Class 등록
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  try {
   //2. 커넥션 생성
   conn = DriverManager.getConnection(dbUrl, dbUserId, dbUserPw);
   
   //3. Statement 생성
   stmt = conn.createStatement();
   
   //4. SQL생성
   String sql = " select SEQ, TITLE, CONTENT, WRITER_NAME, PASSWD, REGIST_DATE, READ_COUNT from TB_BOARD ";
   
   //5. 실행
   rs = stmt.executeQuery(sql);
   
   //6. 결과 Java instance에 저장
   while(rs.next()){
    BoardVO boardVO = new BoardVO();
    
    boardVO.setSeq(rs.getInt("SEQ"));
    boardVO.setTitle(rs.getString("TITLE"));
    boardVO.setContent(rs.getString("CONTENT"));
    boardVO.setWriterName(rs.getString("WRITER_NAME"));
    boardVO.setPasswd(rs.getString("PASSWD"));
    boardVO.setRegistDate(rs.getDate("REGIST_DATE"));
    boardVO.setReadCount(rs.getInt("READ_COUNT"));
    
    boardList.add(boardVO);
   }
   
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   try {
    rs.close();
    stmt.close();
    conn.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return boardList;
 }

*-------------------------Read 부분(파라미터로 숫자를 입력받아 해당 게시물을 출력한다.--------------------*
public BoardVO read(String readSeq){<---------게시물 한개를 불러오기에 List와는 다르게 BoardVO로 리턴해주었다.
  //List<BoardVO> boardList = new ArrayList<BoardVO>();
  BoardVO boardVO = new BoardVO();
  
  //1. JDBC Class 등록
  try {
   Class.forName("oracle.jdbc.driver.OracleDriver");
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  try {
   //2. 커넥션 생성
   conn = DriverManager.getConnection(dbUrl, dbUserId, dbUserPw);
   
   //3. Statement 생성
   stmt = conn.createStatement();
   
   //4. SQL생성
   String sql = " select SEQ, TITLE, CONTENT, WRITER_NAME, PASSWD, REGIST_DATE, READ_COUNT from TB_BOARD where SEQ = " + readSeq;
   
   //5. 실행
   rs = stmt.executeQuery(sql);
   
   //6. 결과 Java instance에 저장
   if(rs.next()){   <----------값이 한개이기 때문에 List와는 다르게 While이 아닌 if문으로 데이터 값을 저장.
    //BoardVO boardVO = new BoardVO();
 
    boardVO.setSeq(rs.getInt("SEQ"));
    boardVO.setTitle(rs.getString("TITLE"));
    boardVO.setContent(rs.getString("CONTENT"));
    boardVO.setWriterName(rs.getString("WRITER_NAME"));
    boardVO.setPasswd(rs.getString("PASSWD"));
    boardVO.setRegistDate(rs.getDate("REGIST_DATE"));
    boardVO.setReadCount(rs.getInt("READ_COUNT"));
 
    //boardList.add(boardVO);
   }
   
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   try {
    rs.close();
    stmt.close();
    conn.close();
   } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return boardVO;
 }

Oracle과 Java 연동부분...!
1. 드라이버 Class등록
2. Connection 생성
3. Statement생성
4. SQL생성
5. 실행
6. 결과

위의 과정을 기억하자...! 더불어 코드도 외우자...!

'Java' 카테고리의 다른 글

Java Compile Version Error..!  (0) 2012.03.15
Java의 문자열 비교..!  (0) 2011.10.04
Java - Lotto(로또)  (0) 2009.10.14
JavaScript...!  (0) 2009.07.07
Eclipse Galileo Ver...!  (0) 2009.07.02
Posted by Z700zZz