목록
목차
구성
#1 . 회원 번호 전달
<td><a href="edit.jsp?idx=<%=user.getIdx()%>">수정</a>
<a href="delete.jsp?idx=<%=user.getIdx()%>">삭제</a></td>
선택한 회원의 번호값(primary key)을 회원 수정 페이지로 전달
#2 . 회원 번호로 정보 불러오기
/**회원번호(idx pk)로 회원정보 가져오기*/
public UserVO selectUser(String idx) throws SQLException{
try {
con=DBUtil.getCon();
String sql="select * from member where idx=?";
ps=con.prepareStatement(sql);
ps.setString(1, idx);
rs=ps.executeQuery();
List<UserVO> arr = makeList(rs);
if(arr!=null && arr.size()==1) {
UserVO user = arr.get(0);
return user;
}
return null;
}finally {
close();
}
}
전달받은 회원의 번호 값으로 회원 정보 조회
//--회원 정보 리스트
private List<UserVO> makeList(ResultSet rs) throws SQLException{
List<UserVO> arr = new ArrayList<>();
while(rs.next()) {
int idx = rs.getInt("idx");
String name = rs.getString("name");
String userid=rs.getString("userid");
String pwd=rs.getString("pwd");
String hp1=rs.getString("hp1");
String hp2=rs.getString("hp2");
String hp3=rs.getString("hp3");
String zipcode=rs.getString("zipcode");
String addr1=rs.getString("addr1");
String addr2=rs.getString("addr2");
java.sql.Date indate=rs.getDate("indate");
int mileage=rs.getInt("mileage");
int mstate=rs.getInt("mstate");
UserVO user = new UserVO(idx,name,userid,pwd,hp1,hp2,hp3,
zipcode,addr1,addr2,indate,mileage,mstate);
arr.add(user);
}//while----
return arr;
}
조회한 회원 정보의 리스트를 생성
#3 . 회원 정보 출력 및 입력받기
회원가입 페이지와 동일하게 생성하지만 비밀번호를 제외한 정보를 출력하고 수정하고자 하는 정보를 입력받음
<input type="radio" name="mstate" value="0" placeholder="Name" <%=(user.getMstate()==0)?"checked":"" %>>활동회원
<input type="radio" name="mstate" value="1" placeholder="Name" <%=(user.getMstate()==1)?"checked":"" %>>정지회원
<input type="radio" name="mstate" value="-1" placeholder="Name" <%=(user.getMstate()==-1)?"checked":"" %>>탈퇴회원
해당 회원의 회원 상태를 보여주는 라디오 버튼을 추가하고 수정 가능하도록 함
#4 . 수정된 회원 정보 출력
//--회원 정보 수정
public int updateUser(UserVO user) throws SQLException{
try {
con = DBUtil.getCon();
//StringBuffer/StringBuilder 클래스를 이용해서 문자열을 편집
StringBuilder buf
= new StringBuilder("update member set name=?, userid=?, pwd=?, hp1=?, hp2=?, hp3=?");
buf.append(" ,zipcode=?, addr1=?, addr2=?, mstate=? where idx=?");
//toString()메소드를 이용해 String으로 최종적으로 만들어 사용
String sql = buf.toString();
ps=con.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setString(2, user.getUserid());
ps.setString(3, user.getPwd());
ps.setString(4, user.getHp1());
ps.setString(5, user.getHp2());
ps.setString(6, user.getHp3());
ps.setString(7, user.getZipcode());
ps.setString(8, user.getAddr1());
ps.setString(9, user.getAddr2());
ps.setInt(10, user.getMstate());
ps.setInt(11, user.getIdx());
int n =ps.executeUpdate();
return n;
}finally {
close();
}
}
String은 원본을 변경하지 못하기 때문에 문자열을 추가, 삭제, 변경하기 위해 StringBuffer/StringBuilder 클래스를 이용해 문자열을 편집한 뒤 toString()메소드를 통해 String으로 만들어 최종 사용
수정 성공 시 1 실패 시 -1 값을 반환
<%
int n = userDao.updateUser(user);
String msg=(n>0)? "수정 처리 완료":"수정 실패";
String loc=(n>0)? "edit.jsp?idx="+user.getIdx():"javascript:history.back()";
%>
<script>
alert('<%=msg%>');
location.href='<%=loc%>';
</script>
수정 성공 시 "수정 처리 완료" 메시지 출력 후 해당 회원의 정보를 회원 목록 페이지로 보내주어 수정된 값 출력
#5 . 회원 삭제
/--회원정보 삭제
public int deleteUser(String idx) throws SQLException{
try {
con=DBUtil.getCon();
String sql = "delete from member where idx=?";
ps = con.prepareStatement(sql);
ps.setString(1, idx);
int n = ps.executeUpdate();
return n;
}finally {
close();
}
}
전달받은 회원의 번호 값으로 회원 테이블에서 정보 삭제
삭제 성공 시 1 실패 시 -1 값을 반환
int n = userDao.deleteUser(idx.trim());
String msg=(n>0)? "삭제 완료":"삭제 실패";
String loc= "list.jsp";
%>
<script>
alert('<%=msg%>');
location.href='<%=loc%>';
</script>
삭제 성공 시 "삭제 완료" 메시지 출력 후 해당 회원의 정보를 회원 목록 페이지로 보내주어 삭제된 값을 제외하고 출력
'기능 학습 > 쇼핑몰 구현' 카테고리의 다른 글
[쇼핑몰 구현] 6. Session을 이용한 로그인 로그아웃 구현 (0) | 2021.07.21 |
---|---|
[쇼핑몰 구현] 5. 회원정보 검색 (0) | 2021.07.21 |
[쇼핑몰 구현] 3. 회원목록 구현 (0) | 2021.07.21 |
[쇼핑몰 구현] 2. 회원가입 구현 (0) | 2021.07.21 |
[쇼핑몰 구현] 1. UI 구성 (0) | 2021.07.20 |