[BbsDAO.java]
public ArrayList<Bbs> getList(int pageNumber){
tring SQL = "SELECT * FROM BBS WHERE bbsID < ? AND bbsAvailable =1
ORDER BY bbsID DESC LIMIT 10";
ArrayList<Bbs> list = new ArrayList<Bbs>();
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.getString(5));
bbs.setBbsAvailable(rs.getInt(6));
list.add(bbs);
}
}catch(Exception e) {
e.printStackTrace();
}
return list;
}
public boolean nextPage(int pageNumber) {
String SQL = "SELECT * FROM BBS WHERE bbsID < ? AND bbsAvailable =1
ORDER BY bbsID DESC LIMIT 10";
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, getNext() - (pageNumber -1) * 10);
rs= pstmt.executeQuery();
while(rs.next()) {
return true;
}
}catch(Exception e) {
e.printStackTrace();
}
return false;
}
- getList()
- 게시판 글 목록을 구현하기 위해 함수를 만들어준다.
- 매개변수를 pageNumber로 받아서 특정한 페이지에 따른 게시글 목록을 가져오게한다.
- nextPage()
- 게시글이 10단위로 끊겼을때 10개 이하면 다음페이지가 존재하면 안되기 때문에 페이징처리를 해준다.
- 다음페이지가 있다면 true반환
- 게시글이 0이나 10 배수라면 bbsID <1이 되어 반환 되는 값이 없기 때문에 false처리가 된다.
[bbs.jsp]
int pageNumber = 1;
if(request.getParameter("pageNumber")!=null){
pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
}
- <body>위쪽에 넣어서 pageNumber를 받아온다.
[bbs.jsp]
<tbody>
<%
BbsDAO bbsDAO = new BbsDAO(); //BbsDAO객체화
ArrayList<Bbs> list = bbsDAO.getList(pageNumber);//getList함수 호출
for(int i = 0; i < list.size(); i++){
%>
<tr>
<td><%=list.get(i).getBbsID() %></td>
<td><a href="view.jsp?bbsID<%=list.get(i).getBbsID() %>">
<%=list.get(i).getBbsTitle() %></a></td>
<td><%=list.get(i).getUserID() %></td>
<td><%=list.get(i).getBbsDate().substring(0,11) +
list.get(i).getBbsDate().substring(11,13) +"시"
+list.get(i).getBbsDate().substring(14,16) + "분"%></td>
</tr>
<% }%>
</tbody>
</table>
<% if(pageNumber!=1){ %>
<a href="bbs.jsp?pageNumber=<%=pageNumber-1%>"
class="btn btn-success btn-arraw-left">이전</a>
<%} if(bbsDAO.nextPage(pageNumber+1)){%>
<a href="bbs.jsp?pageNumber=<%=pageNumber+1%>"
class="btn btn-success btn-arraw-left">다음</a>
<%} %>
- BbsDAO를 객체화 시키고 getList()함수를 호출한다.
- getList()는 반환값이 list이기 때문에 list로 받아준다.
- 테이블에 리스트의 값을 넣어준다.
- 타이틀에 a태그는 해당 글 제목을 클릭했을 때 view.jsp로 가면서 bbsID를 파라메터로 보내주는
작업이다.
- 테이블 아래 쪽에는 pageNumber가 1이상이라면 페이지 이동이 가능한 a태그를 만들어준다.
- 이전페이지로 보내기 위해 같은 파일로 보내는데 파라메터로 pageNumber를 -1해서 보낸다.
- nextpPage() 함수는 다음페이지가 있으면 true반환 없으면 false반환
- 다음페이지가 있다면 같은파일로 보내는데 파라메터로 pageNumber에 +1해서 보낸다.