게시글 삭제기능 구현
먼저 DAO에 boardDelete 메서드를 추가 작성합니다.
public void boardDelete(int boardNum) {
Connection con = null;
PreparedStatement pstmt = null;
try {
con = ds.getConnection();
String sql = "DELETE FROM boardTbl WHERE board_num = ?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, boardNum);
pstmt.executeUpdate();
}catch(Exception e) {
e.printStackTrace();
} finally {
try {
con.close();
pstmt.close();
}catch(Exception e) {
e.printStackTrace();
}
}
} //boardDelete END.
늘 그랬듯 커넥션 풀을 설정하고
PSTMT를 만들고
쿼리문을 생성하고
pstmt.set으로 변수를 받고
하는 과정을 try 안에서 처리했습니다.
servlet 개설
/boardDelete 주소의 서블릿을 만들겠습니다.
이 서블릿은 보낼 데이터가 없기 때문에
삭제가 실행되면 게시판 목록인 /boardList로 리다이렉트 시키겠습니다.
boardNum을 request.getParameter해서
글번호가 같은 boardTbl의 row를 삭제하도록 하겠습니다.
@WebServlet("/boardDelete")
public class BoardDelete extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public BoardDelete() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String boardNum = request.getParameter("board_num");
BoardDAO dao = BoardDAO.getInstance();
System.out.println(boardNum);
dao.boardDelete(Integer.parseInt(boardNum));
response.sendRedirect("http://localhost:8181/MyFirstWeb/boardList");
}
}
삭제하기 버튼 만들기
이제 /boardDelete 서블릿으로 사용자를 전송할 수 있는
버튼을 boardDetail.jsp 안에 작성하면 됩니다.
<div>
<form action= "http://localhost:8181/MyFirstWeb/boardDelete" method="post">
<input type="hidden" name="board_num" value="${board.boardNum}">
<input type="submit" class="btn btn-danger btn-mb-3" value="삭제하기">
</form>
</div>
버튼을 누르면
삭제가 완료되었습니다.
일단은 여기까지 입니다.