게시판에 있는 전체 내용을 확인 하는 것이 BoardList 글 목록 보기 이다.
혼자서 전체 글 목록보기 를 만들어 보았다..
일단 boardDAO클래스에서 Vector를 이용해서 BoardBean클래스를 받는게 신기하였고
boardBean클래스를 이용하는것도 재밌었다..
BoardList.jsp
<%@page import="java.util.Vector"%>
<%@page import="db.BoardBean"%>
<%@page import="db.BoardDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//전체 게시글의 내용을 jsp쪽으로 가져와야 한다.
BoardBean bean = new BoardBean();
BoardDAO bdao = new BoardDAO();
Vector<BoardBean> vbean = bdao.getAllList();
for(int i = 0 ; i< vbean.size();i++){
bean = vbean.get(i);
}
%>
<center>
<h2>전체 글 보기 </h2>
<table width="600" border = "1" >
<tr height="50">
<td width="100"> num </td><td width="200"> <%=bean.getNum() %> </td>
</tr>
<tr height="50">
<td width="100"> writer </td><td width="200"> <%=bean.getWriter() %> </td>
</tr>
<tr height="50">
<td width="100"> email </td><td width="200"> <%=bean.getEmail() %></td>
</tr>
<tr height="50">
<td width="100"> subject </td><td width="200"> <%=bean.getSubject() %> </td>
</tr>
<tr height="50">
<td width="100"> password </td><td width="200"> <%=bean.getPassword() %> </td>
</tr>
<tr height="50">
<td width="100"> reg_date </td><td width="200"> <%=bean.getReg_date() %> </td>
</tr>
<tr height="50">
<td width="100"> ref </td><td width="200"> <%=bean.getRef() %></td>
</tr>
<tr height="50">
<td width="100"> re_step </td><td width="200"> <%=bean.getRe_step() %> </td>
</tr>
<tr height="50">
<td width="100"> re_level </td><td width="200"> <%=bean.getRe_level() %> </td>
</tr>
<tr height="50">
<td width="100"> readcount </td><td width="200"> <%=bean.getReadcount() %> </td>
</tr>
<tr height="50">
<td width="100"> content </td><td width="200"> <%=bean.getContent() %> </td>
</tr>
</table>
</center>
</body>
</html>
BoardDAO.class
package db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class BoardDAO {
Connection con;
PreparedStatement pstmt;
ResultSet rs;
//데이터베이스의 커넥션풀을 사용하도록 설정하는 메소드
public void getCon() {
try {
Context initctx = new InitialContext();
Context envctx =(Context) initctx.lookup("java:comp/env");
DataSource ds = (DataSource)envctx.lookup("jdbc/pool");
//datascource
con = ds.getConnection();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
//하나의 새로운 게시글이 넘어와서 저장되는 메소드
public void insertBoard(BoardBean bean) {
getCon();
//빈클래스에 넘어오지 않았던 데이터들을 초기화 해주어야 한다.
// 즉 , 클라이언트에서 인풋값으로 직접 작성하지 않고 데이터베이스에서 값을 부여하는 것을 여기서 초기화를 미리 시켜주어야만 한다.
int ref = 0; // 글 그룹을 의미하는애 = 쿼리를 실행시켜서 가장 큰 ref 값울 가져온후 +1 을 더해주면 됨
int re_step = 1;//새글이기에 = 부모글이기에
int re_level = 1;
try {
//가장 큰 ref값을 읽어오는 쿼리 준비
String refsql = "select max(ref) from board2";
//쿼리 실행 객체
pstmt = con.prepareStatement(refsql);
//쿼리 실행후 결과를 리턴
rs = pstmt.executeQuery();
if(rs.next()) {
ref = rs.getInt(1)+1;//최대 값에 +1을 더해서 글 그룹을 설정
}
//실제로 게시글 전체값을 테이블에 저장
String sql = "insert into sys.board2 values(0,?,?,?,?,sysdate(),?,?,?,0,?)";
pstmt = con.prepareStatement(sql);
//?에 값을 맵핑
pstmt.setString(1, bean.getWriter());
pstmt.setString(2, bean.getEmail());
pstmt.setString(3, bean.getSubject());
pstmt.setString(4, bean.getPassword());
pstmt.setInt(5, ref);
pstmt.setInt(6, re_step);
pstmt.setInt(7, re_level);
pstmt.setString(8, bean.getContent());
//쿼리를 실행하시오
pstmt.executeUpdate();
//자원반납
con.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public Vector<BoardBean> getAllList() {
Vector<BoardBean>v = new Vector<BoardBean>();
getCon();
BoardBean bean = new BoardBean();
try {
String sql = "select * from sys.board2";
pstmt= con.prepareStatement(sql);
rs = pstmt.executeQuery();
while(rs.next()) {
bean.setNum(rs.getInt(1));
bean.setWriter(rs.getString(2));
bean.setEmail(rs.getString(3));
bean.setSubject(rs.getString(4));
bean.setPassword(rs.getString(5));
bean.setReg_date(rs.getString(6));
bean.setRef(rs.getInt(7));
bean.setRe_step(rs.getInt(8));
bean.setRe_level(rs.getInt(9));
bean.setReadcount(rs.getInt(10));
bean.setContent(rs.getString(11));
v.add(bean);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return v;
}
}
위 코드들과 주석처리들을 주이깊게 보자..!
'웹 프로그래밍(풀스택-->java) > 웹프로그래밍(백엔드-->java)' 카테고리의 다른 글
38. Jsp 게시판- BoardReWriteProc ,BoardDAO (0) | 2021.12.07 |
---|---|
37. Jsp 게시판 - BoardReWriteForm 답글쓰기 (5) | 2021.12.06 |
35. Jsp 게시판 - BoardWriteProc, 게시글 입력 (0) | 2021.12.05 |
34. Jsp 게시판 - Dao 클래스 설정, BoardWriteForm (0) | 2021.12.05 |
33. Jsp 게시판 - 테이블 설정, 빈클래스,Dao클래스 설정 (0) | 2021.12.05 |