ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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탄 - 박매일 

     

Designed by Tistory.