반드시 구현해야할 계약서를 만드는 작업이 인터페이스다.

BbsDAO에서 반드시 해야 할 작업들을 작성해 놓는다.

Interface BbsDAO 를 작성한다.


package org.sdq.bbs;

public interface BbsDAO {

 public void create(BbsVO vo) throws Exception; //데이타를 집어넣을 작업을 구현하게 한다.
 
}


이제 인터페이스를 구현할 BbsDAOImpl Class를 만든다.

그리고 이전에 오라클과 연결하기 위한 작업을 수행하던 클래스를 상속 받아서 사용한다.


package org.sdq.bbs;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class BasicDAO {

 private static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
 private static final String URL="jdbc:oracle:thin:@127.0.0.1:1521:XE";
 private static final String USER = "USER01";
 private static final String PW = "USER01";
 
 static{ //실행될 때 메모리 상에 올린다. 한번만
  try {
   Class.forName(DRIVER); //import 하는 거와 동일하다. 왜 이렇게 하냐 면 다른 DB를 사용 때 체크한다.
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }
 
 public Connection getConnection() throws SQLException{
  
  Connection con = null;
  
  //서브잡일때 잡고, 메인잡일때 던져(일부분일 때는 잡아야되고, 전체일 때는 던진다
  
  con = DriverManager.getConnection(URL, USER, PW);
  
  return con;
 }
}

그리하여 완성된 BbsDAOImpl Class!


package org.sdq.bbs;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class BbsDAOImpl extends BasicDAO implements BbsDAO {

 @Override
 public void create(BbsVO vo) throws Exception {
 
    Connection con = null;
    PreparedStatement pstmt = null;
   
    StringBuffer buffer = new StringBuffer();
    //buffer.append(" INSERT into TBL_BBS (bbsno, title, content, writer)\n");
    //buffer.append(" values(SEQ_BBS.NEXTVAL, 'AAAAAAAAA', 'BBBBBBBB', 'YNK')\n");
    buffer.append("  INSERT into TBL_BBS (bbsno, title, content, writer) \n");
    buffer.append("  values(SEQ_BBS.NEXTVAL, ?, ?, ?)  \n");
  
    try{
    
     con =
getConnection();
     pstmt = con.prepareStatement(buffer.toString());
     pstmt.setString(1, vo.getTitle());
     pstmt.setString(2, vo.getContent());
     pstmt.setString(3, vo.getWriter());
    
     int result = pstmt.executeUpdate();
     System.out.println(result);
    
     //작업
     pstmt.close();
     pstmt = null;
     con.close();
     con = null;
    }catch(Exception e){
     e.printStackTrace();
    }finally{
     if(pstmt != null){try{ pstmt.close(); }catch(Exception e){} }
     if(con != null){try{con.close();}catch(Exception e){}}
    } 
 }
}

+ Recent posts