경진의 블로그

회원관리 시스템 삭제부분(업데이트로 수정) 본문

자바개발과정/JSP&Servlet

회원관리 시스템 삭제부분(업데이트로 수정)

aith 2008. 7. 11. 16:29
회원 정보 삭제 부분 수정

회원탈퇴해도 회원정보가 실제 DB에서 삭제 되지않고 화면에 보이지 않게 한다.

DB에서 칼럼을 추가한다. (칼럼명 : mem_status, 데이타유형 : char, 사이즈 : 1 Byte, 기본값 : 1)

MemberVO.java 상태 변수를 추가한다. (아직 사용할 일은 없다)

private String mem_status = ""; //회원탈퇴유무(1회원, 2탈퇴)

MemberCtrl.java 상태값을 업데이트하는 메소드를 추가한다.

 /*
  * 회원탈퇴하기
  * @param : del_id
  * @return : int
  * 회원탈퇴를 희망한 회원의 상태코드를 1에서 2로 Update처리
  */

 public int memberStatusUpdate(String del_id) {
     int count = 0;
     pool = DBConnectionMgr.getInstance();
     query = new StringBuffer();
     query.append("UPDATE member SET mem_status = 2");
     query.append(" WHERE mem_id = ?");
  try {
      con = pool.getConnection();
      pstmt = con.prepareStatement(query.toString());
      pstmt.setString(1,del_id);
      count = pstmt.executeUpdate();
  }catch(SQLException s){
      System.out.println("=============================================");
      System.out.println("query:"+query.toString());
      System.out.println("=============================================");
      System.out.println(s.toString());
  } catch (Exception e) {
      System.out.println(e.toString());
  } finally{
      pool.freeConnection(con,pstmt);
  }
     return count;
 }

조회부분 메소드에서 쿼리 부분을 수정한다 (탈퇴일 경우 조회할 때 화면에 출력하지 않게 한다)

query.append("SELECT mem_name, mem_id, mem_email, mem_tel");
query.append(" FROM member WHERE mem_status = 1");

입력부분의 메소드에서 쿼리 부분을 수정한다 (묵시적에서 명시적으로 바꾼다 이유는 상태 칼럼이 추가되었다)

query.append("INSERT INTO member(mem_id, mem_name, mem_pw, mem_email, mem_tel) values(?,?,?,?,?)");

memberDelete.jsp 호출 되는 회원탈퇴 메소드를 수정한다. (삭제는 사용안하고 상태를 바꿔준다)

int count = mCtrl.memberDelete(del_id);
 에서
int count = mCtrl.memberStatusUpdate(del_id);
 으로 수정한다.

memberDetail.jsp 삭제라는 링크 문자를 탈퇴로 바꾼다.

<a href="memberDelete.jsp?del_id=<%=mVO.getMem_id()%>">삭제</a>
 에서
<a href="memberDelete.jsp?del_id=<%=mVO.getMem_id()%>">회원탈퇴</a>
 으로 삭제한다.

실제로 DB에서 회원정보를 삭제안하고 이런식으로 또는 다른곳에 백업을 한다 개인정보는 곧 쩐이다.
0 Comments
댓글쓰기 폼