홈페이지만들기5 : 게시판에 글목록표시구현

  • 작성한 게시글을 표시해주는 게시판 글 전체목록을 표시하는 기능 구현

notice.jsp 수정

  1. html테이블작성
  2. BoardDAO객체생성
  3. 테이블에 저장된 글의 개수 계산 메서드 getBoardCount()메서드 생성
  4. 글이 있는 경우 모든 글의 정보를 가져오는 getBoardList() 메서드 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!-- 게시판 -->
<% //1. BoardDAO객체생성
BoardDAO bdao = new BoardDAO();

//2. 테이블에 저장된 글의 개수 계산 메서드 getBoardCount()메서드 생성
int count = bdao.getBoardCount();

//3. 글이 있는 경우 모든 글의 정보를 가져오는 메서드
List boardList = null;
if(count != 0){
boardList = bdao.getBoardList();
}
%>

<article>
<h1>게시판 [총 글 : <%=count %>개]</h1>
<table id="notice">
<tr><th class="tno">No.</th>
<th class="ttitle">Title</th>
<th class="twrite">Writer</th>
<th class="tdate">Date</th>
<th class="tread">Read</th></tr>
<%//반복문
for(int i=0; i<boardList.size(); i++){
BoardBean bb = (BoardBean) boardList.get(i);
%>
<tr><td><%=bb.getBno() %></td>
<td class="left"><%=bb.getSubject() %></td>
<td><%=bb.getName() %></td>
<td><%=bb.getDate() %></td>
<td><%=bb.getReadcount() %></td>
</tr>
<%
}
%>
</table>
<div id="table_search">
<input type="text" name="search" class="input_box">
<input type="button" value="search" class="btn">
</div>
<div class="clear"></div>
<div id="page_control">
<a href="#">Prev</a>
<a href="#">1</a><a href="#">2</a><a href="#">3</a>
<a href="#">4</a><a href="#">5</a><a href="#">6</a>
<a href="#">7</a><a href="#">8</a><a href="#">9</a>
<a href="#">10</a>
<a href="#">Next</a>
</div>
</article>
<!-- 게시판 -->




BoardDAO.java에서 getBoardCount()메서드 생성

글 개수 계산하는 메서드 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public int getBoardCount(){
int count = 0;

try {
//1.DB연결
con = getCon();
//2. sql & pstmt
//전체또는 not null 컬럼을 가져오는데 count함수를 사용해서 개수를 세서 가져오는 것
sql = "select count(*) from fun_board";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
//3. 데이터처리
//왜 while이 아니고 if일까? count함수가 적용되었기때문에
if(rs.next()){
count = rs.getInt(1);
System.out.println("게시판 총 글 개수 : "+count);
}

} catch (Exception e) {
e.printStackTrace();
} finally {
closeDB();
}
return count;
}//getBoardCount닫음




BoardDAO.java에서 getBoardList()메서드 생성

글이 있는 경우 모든 글의 정보를 가져오는 메서드 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public List getBoardList(){
//리스트객채 배열 생성
List boardList = new ArrayList();

//2.DB연결
try {
con = getCon();
//3.sql & pstmt
//최신글이 위로 가도록 정렬
sql = "select * from fun_board order by re_ref desc";
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
//4.데이터처리
while(rs.next()){
BoardBean bb = new BoardBean();
bb.setBno(rs.getInt("bno"));
bb.setName(rs.getString("name"));
bb.setPw(rs.getString("pw"));
bb.setSubject(rs.getString("subject"));
bb.setContent(rs.getString("content"));

bb.setReadcount(rs.getInt("readcount"));
bb.setRe_ref(rs.getInt("re_ref"));
bb.setRe_seq(rs.getInt("re_seq"));
bb.setRe_lev(rs.getInt("re_lev"));
bb.setDate(rs.getDate("date"));

bb.setIp(rs.getString("ip"));
bb.setFile(rs.getString("file"));
//여기까지 한 행의 데이터를 저장한 것임.

//5. 리스트 한칸에 행의 정보 하나를 저장
boardList.add(bb);
}
System.out.println("글 정보 저장 완료 : "+boardList);
} catch (Exception e) {
e.printStackTrace();
} finally {
closeDB();
}
return boardList;
}//getBoardList닫음

Comments