자 오늘은 우리가 게시글을 작성한 내용을 jsp에서 읽어드려서 그걸 다시 boardDAO쪽으로 넘겨서 게시글이 입력되는 것까지 진행해볼것
이다. 오늘은 글쓰기 처리와 글쓰기 저장 그리고 전체게시글보기 까지 넘어가 볼 것이다. 아마 요번시간에는 boardDAO까지는
진행되지 않을까 싶다.
BoardWriteProc.jsp
<%@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>
<%
request.setCharacterEncoding("UTF-8");//한글처리
%>
<!-- 게시글 작성한 데이터를 한번에 읽어드림 -->
<jsp:useBean id="boardbean" class="db.BoardBean">
<jsp:setProperty name="boardbean" property="*"/>
</jsp:useBean>
<%
//데이터베이스 쪽으로 빈클래스를 넘겨줌
BoardDAO bdao = new BoardDAO();
//데이터 저장 메소드 호출
bdao.insertBoard(boardbean);
%>
</body>
</html>
BoardDAO.class
package db;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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();
}
}
}
결과가 아주 잘 나온다..!
'웹 프로그래밍(풀스택-->java) > 웹프로그래밍(백엔드-->java)' 카테고리의 다른 글
37. Jsp 게시판 - BoardReWriteForm 답글쓰기 (5) | 2021.12.06 |
---|---|
36. Jsp 게시판 - BoardList 글 목록 보기 (0) | 2021.12.06 |
34. Jsp 게시판 - Dao 클래스 설정, BoardWriteForm (0) | 2021.12.05 |
33. Jsp 게시판 - 테이블 설정, 빈클래스,Dao클래스 설정 (0) | 2021.12.05 |
32. Jsp 게시판 - 시스템구조 (0) | 2021.12.05 |