CodeSiri/Project

[Mini Project 🚴🏻‍♀️] 10. 게시판 글 목록 기능 구현

Dev다D 2021. 2. 22. 16:20
반응형

 게시판에서 글 목록을 보여주려면 DdaDAO.java에 소스를 추가해야한다. 또한, 목록을 확인하기위한 디자인도 필요하므로 dda.jsp에 추가한다.

 

 

DdaDAO.java

public ArrayList<Dda> getList(int pageNumber){
	String SQL="SELECT * from DDA where ddaID < ? AND ddaAvailable = 1 order by ddaID desc limit 10";//마지막 게시물 반환, 삭제가 되지 않은 글만 가져온다.
	ArrayList<Dda> list = new ArrayList<Dda>();
	try {
		PreparedStatement pstmt=conn.prepareStatement(SQL);
		pstmt.setInt(1, getNext()-(pageNumber-1)*10);
		rs=pstmt.executeQuery();
		while(rs.next()) {
			Dda dda = new Dda();
			dda.setDdaID(rs.getInt(1));
			dda.setDdaTitle(rs.getString(2));
			dda.setUserID(rs.getString(3));
			dda.setDdaDate(rs.getString(4));
			dda.setDdaContent(rs.getString(5));
			dda.setDdaAvailable(rs.getInt(6));
			list.add(dda); 
		}			
	} catch(Exception e) {
		e.printStackTrace();
	}
	return list;  
}

public boolean nextPage(int pageNumber) {
	String SQL="SELECT * from DDA where ddaID < ? AND ddaAvailable =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;
}

 

dda.jsp

<tbody>
	<%
	DdaDAO ddaDAO=new DdaDAO();
	ArrayList<Dda> list = ddaDAO.getList(pageNumber);
	for(int i=0;i<list.size();i++){
	%>
		<tr>
			<td><%= list.get(i).getDdaID() %></td><%--현재 게시글에 대한 정보 --%>
			<td><a href="view.jsp?ddaID=<%= list.get(i).getDdaID() %>"><%= list.get(i).getDdaTitle() %></a></td>
			<td><%= list.get(i).getUserID() %></td>
			<td><%= list.get(i).getDdaDate().substring(0,11)+list.get(i).getDdaDate().substring(11,13)+"시"+list.get(i).getDdaDate().substring(14,16)+"분" %></td>
		</tr>
	<%
	}
	%>
</tbody>
	</table>
		<%
			if(pageNumber!=1){
		%>
			<a href="dda.jsp?pageNumber=<%=pageNumber - 1 %>" class="btn btn-primary btn-arrow-left">이전</a>
		<%
			} if(ddaDAO.nextPage(pageNumber+1)){
		%>
			<a href="dda.jsp?pageNumber=<%=pageNumber + 1 %>" class="btn btn-primary btn-arrow-left">다음</a>			
		<%
		}%> 
반응형