-
[Project] 게시판 목록 만들기카테고리 없음 2022. 11. 14. 12:16
거의 상품리스트와 일치함 // 게시글 리스트 메서드
public ArrayList<Bbs> getList(int pageNumber){
String sql = "select * from bbs where bbsID < ? and bbsAvailable = 1 order by bbsID desc limit 10";
ArrayList<Bbs> list = new ArrayList<>();
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, getNext() - (pageNumber - 1) * 10);
rs = pstmt.executeQuery();
while(rs.next()) {
Bbs bbs = new Bbs();
bbs.setBbsID(rs.getInt(1));
bbs.setBbsTitle(rs.getString(2));
bbs.setUserID(rs.getString(3));
bbs.setBbsDate(rs.getString(4));
bbs.setBbsContent(rs.getNString(5));
bbs.setBbsAvailable(rs.getInt(6));
list.add(bbs);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
/*
* 설명
* DB에 등록된 글의 정보를 가져와서 화면에 뿌려주려면 bbs 테이블에서 bbsID가 가장 큰 숫자부터 가져오면 되는데
* 그럴려면 하나의 글에 있는 정보 덩어리(?) == 글번호(bbsID), 제목(bbsTitle), 글쓴이(userID),
* 작성날짜(bbsDate), 글내용(bbsContent), 글의 유효번호(bbsAvailable)를 가져와야 한다.
* (이 시점에서 rs에는 모든 글의 모든 정보가 쌓이게 된다.)
* 따라서 Bbs 클래스로 인스턴스를 만들어서 이 정보들을 setter로 넣어준다.
* 물론 이 넣어줄 정보는 쿼리문 돌려서 rs에 저장해 놓은 것들을 rs.getXXX()로 가져온다. 이게 while문 안의 내용.
* 그런데 이렇게 만들 글의 정보가 글의 갯수만큼 있을테니까 ArrayList를 만들어서 여기에 글들을
* 차곡차고 넣어준다. 이게 list.add(bbs);
*/
} // end of getList()페이징처리 // 페이징 처리 메서드
public boolean nextPage(int pageNumber) {
String sql = "select * from bbs where bbsID < ? and bbsAvailable = 1";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, getNext() - (pageNumber - 1) * 10);
rs = pstmt.executeQuery();
if(rs.next()) {
return true;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
} // end of nextPage()게시글 보기 코드 // 하나의 게시글을 보는 메서드
public Bbs getBbs(int bbsID) {
String sql = "select * from bbs where bbsID = ?";
try {
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, bbsID);
rs = pstmt.executeQuery();
if(rs.next()) {
Bbs bbs = new Bbs();
bbs.setBbsID(rs.getInt(1));
bbs.setBbsTitle(rs.getString(2));
bbs.setUserID(rs.getString(3));
bbs.setBbsDate(rs.getString(4));
bbs.setBbsContent(rs.getString(5));
bbs.setBbsAvailable(rs.getInt(6));
return bbs;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
/*
* 설명
* 쿼리문에 파라미터로 넘겨받은 bbsID를 입력하여 그 bbsID로 데이터가 존재한다면 rs.getXXX()로 가지고 와서
* Bbs클래스로 만든 bbs 인스턴스에 setter로 넣어줌.
*/
} // end of getBbs()