ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day55 - JSP(공지사항 페이지 )
    KIC/JSP 2021. 9. 2. 02:21
    반응형

    [BoardDao.java]

    package dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import model.Board;
    import util.DBConnection;
    
    public class BoardDao {
    	public boolean insert(Board board) {
    		Connection conn = DBConnection.getConnection();
    		PreparedStatement pstmt = null;
    		ResultSet rs = null;
    		System.out.println("insert:"+board);
    		int num = 0;
    		String sql1 = "select multiboardseq.nextval from dual";
    		String sql2 = "insert into multiboard " + "(num, name, pass, subject, content, file1, regdate,"
    				+ "readcnt, ref, reflevel, refstep, boardid)" + "  values  (?,?,?,?,?,?,sysdate,0,?,?,?,?)";
    		//---------------------------
    		int ref = 0, reflevel = 0, refstep = 0;
    		//---------------------------
    		try {
    			pstmt = conn.prepareStatement(sql1);
    			rs = pstmt.executeQuery();
    			if(rs.next()) num = rs.getInt(1);
    			// ---------------- 답글인 경우
    			if(board.getNum() > 0) {
    				ref = board.getRef();
    				reflevel = board.getReflevel() + 1;
    				refstep = board.getRefstep() + 1;
    			}else {
    				
    				ref = num;
    			}
    			// ---------------- 답글인 경우
    			pstmt = conn.prepareStatement(sql2);
    			pstmt.setInt(1, num);
    			pstmt.setString(2, board.getName());
    			pstmt.setString(3, board.getPass());
    			pstmt.setString(4, board.getSubject());
    			pstmt.setString(5, board.getContent());
    			pstmt.setString(6, board.getFile1());
    			pstmt.setInt(7, ref);
    			pstmt.setInt(8, reflevel);
    			pstmt.setInt(9, refstep);
    			pstmt.setString(10, board.getBoardid());
    			pstmt.executeUpdate();
    			return true;
    				
    			}catch(SQLException e) {
    				e.printStackTrace();
    		}
    		finally {
    			DBConnection.close(conn, pstmt, null);
    		}
    		return false;
    	}
    	
    	public int boardCount(String boardid) {
    		Connection conn = DBConnection.getConnection();
    		PreparedStatement pstmt = null;
    		ResultSet rs = null;
    		try {
    			pstmt = conn.prepareStatement("select count(*) count from multiboard where boardid  = ?");
    			pstmt.setString(1, boardid);
    			rs = pstmt.executeQuery();
    			rs.next();
    			return rs.getInt(1);
    		}catch(SQLException e) {
    			e.printStackTrace();
    		}finally {
    			DBConnection.close(conn, pstmt, rs);
    		}
    		return 0;
    	}
    	
    	public List<Board> list(int pageInt, int limit, int boardcount, String boardid){
    		Connection conn = DBConnection.getConnection();
    		PreparedStatement pstmt = null;
    		ResultSet rs = null;
    		List<Board> list = new ArrayList<Board>();
    		//----------------------
    		int start = (pageInt - 1) * limit + 1;
    		int end = start + limit -1;
    		String sql = "select * from (select rownum rnum, a.* "
    				+ " from (select * from multiboard where boardid = ? order by ref desc, refstep) a) "
    				+ "where rnum between ? and ?";
    		System.out.println(sql);
    		try {
    			pstmt = conn.prepareStatement(sql);
    			pstmt.setString(1, boardid);
    			pstmt.setInt(2, start);
    			pstmt.setInt(3, end);
    			System.out.println(start + ":" + end);
    			rs = pstmt.executeQuery();
    			while(rs.next()) {
    				Board b = new Board();
    				b.setNum(rs.getInt("num"));
    				b.setName(rs.getString("name"));
    				b.setPass(rs.getString("pass"));
    				b.setSubject(rs.getString("subject"));
    				b.setContent(rs.getString("content"));
    				b.setFile1(rs.getString("file1"));
    				b.setRef(rs.getInt("ref"));
    				b.setReflevel(rs.getInt("reflevel"));
    				b.setRefstep(rs.getInt("refstep"));
    				b.setReadcnt(rs.getInt("readcnt"));
    				b.setRegdate(rs.getTimestamp("regdate"));
    				list.add(b);
    				
    				
    			}
    			return list;
    			
    		}catch(SQLException e) {
    			e.printStackTrace();
    		}finally {
    			DBConnection.close(conn, pstmt, rs);
    		}
    		return null;
    	}
    	
    	public Board selectOne(int num){
    		Connection conn = DBConnection.getConnection();
    		PreparedStatement pstmt = null;
    		ResultSet rs = null;
    
    		String sql = "select *  from multiboard where num =?";
    		try {
    			pstmt = conn.prepareStatement(sql);
    			pstmt.setInt(1, num);
    			rs = pstmt.executeQuery();
    			while(rs.next()) {
    				Board b = new Board();
    				b.setNum(rs.getInt("num"));
    				b.setName(rs.getString("name"));
    				b.setPass(rs.getString("pass"));
    				b.setSubject(rs.getString("subject"));
    				b.setContent(rs.getString("content"));
    				b.setFile1(rs.getString("file1"));
    				b.setRef(rs.getInt("ref"));
    				b.setReflevel(rs.getInt("reflevel"));
    				b.setRefstep(rs.getInt("refstep"));
    				b.setReadcnt(rs.getInt("readcnt"));
    				b.setRegdate(rs.getTimestamp("regdate"));
    				return b;
    				
    				
    			}
    
    		}catch(SQLException e) {
    			e.printStackTrace();
    		}finally {
    			DBConnection.close(conn, pstmt, rs);
    		}
    		return null;
    	}
    	
    	public void readcntadd(int num) {
    		Connection conn = DBConnection.getConnection();
    		PreparedStatement pstmt = null;
    		String sql = "update multiboard set readcnt = readcnt + 1 where num=?";
    		try {
    			pstmt = conn.prepareStatement(sql);
    			pstmt.setInt(1, num);
    			pstmt.executeUpdate();
    		}catch(SQLException e) {
    			e.printStackTrace();
    		}finally {
    			DBConnection.close(conn, pstmt, null);
    		}
    	}
    	
    	public void refstepadd(int ref, int refstep) {
    		Connection conn = DBConnection.getConnection();
    		PreparedStatement pstmt = null;
    		String sql = "update multiboard set readcnt = readcnt + 1 where num=? and refstep > ?";
    		try {
    			pstmt = conn.prepareStatement(sql);
    			pstmt.setInt(1, ref);
    			pstmt.setInt(2, refstep);
    			pstmt.executeUpdate();
    		}catch(SQLException e) {
    			e.printStackTrace();
    		}finally {
    			DBConnection.close(conn, pstmt, null);
    		}
    	}
    	
    	
    	
    
    }

     

     

    [replyForm.jsp]

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>게시판 글쓰기</title>
    <script>
    function board_submit(){
    	var f = document.f;
    	if(f.name.value==""){
    		alert("이름을 입력하세요")
    		f.name.focus();
    		return;
    	}
    	if(f.pass.value==""){
    		alert("비밀번호을 입력하세요")
    		f.pass.focus();
    		return;
    	}
    	if(f.subject.value==""){
    		alert("제목을 입력하세요")
    		f.subject.focus();
    		return;
    	}
    	if(f.content.value==""){
    		alert("내용을 입력하세요")
    		f.content.focus();
    		return;
    	}
    	f.submit();
    }
    </script>
    </head>
    <body>
    <form action="replyPro" method="post" name="f">
    <imput type="hidden" name="num" value="${board.num}">
    <imput type="hidden" name="ref" value="${board.ref}">
    <imput type="hidden" name="refstep" value="${board.refstep}">
    <imput type="hidden" name="reflevel" value="${board.reflevel}">
    <div class = "w3-content">
    <table>
    	<caption>답글쓰기</caption>
    	<tr><th>글쓴이</th><td><input type="text" name="name"></td></tr>
    	<tr><th>비밀번호</th><td><input type="password" name="pass"></td></tr>
    	<tr><th>제목</th><td><input type="text" name="subject" value="re:${board.subject}"></td></tr>
    	<tr><th>내용</th><td><textarea rows="15" name="content"></textarea></td></tr>
    	<tr>
    		<td colspan="2"><a href="javascript:board_submit()">[답글등록]</a></td>
    	</tr>
    </table>
    </div><br><br><br>
    http://localhost:8090/kicPro/board/writeForm
    </form>
    </body>
    </html>
    300x250

    'KIC > JSP' 카테고리의 다른 글

    day54 - JSP(공지사항 페이지)  (0) 2021.09.01
    day53 - JSP(사진 추가 페이지)  (0) 2021.08.31
    day52 - JSP(login, memberList)  (0) 2021.08.27
    day51 - JSP(model2, login)  (0) 2021.08.26
    day50 - JSP(model2, login, DBconnection)  (0) 2021.08.26

    댓글

Designed by Tistory.