반드시 구현해야할 계약서를 만드는 작업이 인터페이스다.
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){}}
}
}
}
'JavaEE' 카테고리의 다른 글
server.xml 의 tomcatThreadPool 과 커넥션 풀의 속성에서 maxActive의 관계 (0) | 2009.08.29 |
---|---|
eclipse에 WAS(Tomcat) 추가하기. (0) | 2009.08.28 |
include 지시어와 include 액션 (0) | 2009.08.27 |
Cookie를 사용한 게시물 조회 올리기 방지 방법. (0) | 2009.08.27 |
Session의 사용법 (0) | 2009.08.26 |
Cookie와 Session (0) | 2009.08.25 |
PreparedStatement 로 사용할 쿼리 쉽게 만드는 방법 (0) | 2009.08.19 |
WAS 셋팅 하기. (0) | 2009.08.15 |
JUnit 사용을 사용한 개발. (0) | 2009.08.13 |
JDBC 드라이버에 관해서. (0) | 2009.08.13 |