jsp

MVC2패턴 게시판 만들기 (DAO & VO)

0304호 2022. 12. 6.

BoardDAO생성

DAO생성시 기본적으로 가져가야 하는 기능들은 UserDAO에서 가져온다.

public class BoardDAO {
	//BoardDAO는 불필요하게 여러개 만들어질 필요가 없기 때문에
	//한개의 객체만 만들어지도록 singleton형식으로 설계함

	//1. 나자신의 객체를 생성해서 1개로 제한함.
	private static BoardDAO instance = new BoardDAO();

	//2. 직접 객체를 생성 할 수 없도록 생성자에 private
	private BoardDAO() {
		//드라이버클래스 로드
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			System.out.println("드라이버 클래스 로드 에러");
			e.printStackTrace();
		}
	}

	//3. 외부에서 객체생성을 요구할때 getter메서드를 통해 1번의 객체를 반환
	public static BoardDAO getInstance() {
		return instance;
	}

	//4. 필요한 데이터베이스 변수 선언
	public String URL = "jdbc:oracle:thin:@localhost:1521:xe";
	public String UID = "jsp";
	public String UPW = "jsp";

	private Connection conn;
	private PreparedStatement pstmt;
	private ResultSet rs;

	//5. 메서드
}

regist메서드 추가 (작성한 글을 데이터베이스에 Insert하는 메서드)

public void regist(String writer, String title, String content) {
		String sql = "INSERT INTO board (bno, writer, title, content) VALUES(board_seq.nextval, ?, ?, ?	)";
		try {
			conn=DriverManager.getConnection(URL, UID, UPW);
			pstmt =conn.prepareStatement(sql);
			pstmt.setString(1, writer);
			pstmt.setString(2, title);
			pstmt.setString(3, content);
			pstmt.executeUpdate();		//실행
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtill.close(conn, pstmt, rs);
		}
	}

BoardVO생성

(데이터베이스에 있는 테이블 컬럼들을 Private으로 생성)

 

Constructor / Constructor Using Fields / Getter / Setter 생성

public class BoardVO {
	private int bno;
	private String writer;
	private String title;
	private String content;
	private Timestamp regdate;
	private int hit;
}

 

 

댓글