ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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()

Designed by Tistory.