-
Servlet-JSP MVC01 (4) - 회원삭제Web/Servlet-JSP 2023. 5. 26. 09:04
memberList에서 삭제버튼 추가해서 누르면 회원정보가 삭제되도록 하자.
1. memberListController에 view부분에 삭제버튼 추가하기
각 회원정보 칸 마다 삭제버튼을 추가해야 삭제하고 싶은 회원을 삭제할 수 있을 것이다.
멤버리스트를 출력하는 for문에 삭제버튼을 추가하자
out.println("<th><a href='/MVC01/memberDelete.do?num="+m.getNum()+"'>삭제</a></th>");
> 삭제버튼을 <a>태그를 통해 추가하였다. 이때 태그를 누르면 넘어갈 url에 쿼리스트링을 추가해서 각 회원리스트별
num정보가 함께 넘어가도록 했다.
> 이는 삭제를 위해 sql문을 실행할 때, 삭제할 멤버를 구분할 key값으로 num을 사용하기 위해 넘겼다.
> 이제 memberDelete.do를 받을 컨트롤러를 추가하자.
2. MemberDeleteController 추가하기
MemberDeleteController는 요청을 받아 회원정보를 삭제하기 위해,
- num을 수집해서 DAO에 넘기고, DAO가 sql을 실행해서 DB에서 회원삭제
- 쿼리성공여부에 따라 다시 memberList를 보여준다. (redirect)
int num = Integer.parseInt(request.getParameter("num"));
MemberDAO dao = new MemberDAO(); int cnt = dao.DeleteMember(num); if(cnt >0) { response.sendRedirect("/MVC01/memberList.do"); }else { throw new ServletException("not insert"); }
3. DB에서 회원삭제하기
public int DeleteMember(int num) { String sql = "delete from member where num =?"; int cnt=-1; getConnect(); try { ps = conn.prepareStatement(sql); ps.setInt(1, num); cnt = ps.executeUpdate(); //1 or 0 } catch (Exception e) { e.printStackTrace(); }finally { dbClose(); } return cnt; }
- 회원정보를 넣을 때와 같이 sql에 ?파라미터를 추가한 뒤에 ps를 통해 값을 전달
- 최종 쿼리문을 돌렸을 때 성공여부 반환 값 담아서 컨트롤러로 넘기기
정리 - 회원정보를 삭제해 보았다.
DB에서 데이터 삭제할 때는 이를 식별할 정보를 같이 넘겨줘야함 - <a>태그일때 get방식으로 소통할 수 있음
삭제를 요청하면, 해당 요청을 컨트롤러가 받기 : 이때 DB에서 각각의 회원 레코드를 식별할 수 있는 값을 같이 넘겨줘야함(기본키 등)
컨트롤러는 같이 넘어온 값을 수집해서 DAO에 넘김
쿼리 성공여부에 따라 redirect -> memberList.do
참고자료: 인프런 나프1탄 - 박매일
'Web > Servlet-JSP' 카테고리의 다른 글
Servlet - JSP MVC01 (6) 회원정보수정하기 (0) 2023.05.26 Servlet - JSP MVC01 (5) - 회원상세보기 (0) 2023.05.26 Servelt-JSP MVC01 (3) - 회원리스트 가져오기 (0) 2023.05.26 Servlet-JSP MVC01 (2) - Servlet과 Model 연결 (회원관리테이블) (0) 2023.05.24 Servlet-JSP MVC01 (1) - 기본 구조 만들기 (0) 2023.05.23