Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

게으른 완벽주의자의 개발자 도전기

DB와 연결하여 데이터 이동하기6(회원정보 수정하기) 본문

servlet jsp

DB와 연결하여 데이터 이동하기6(회원정보 수정하기)

머리방울 2022. 7. 31. 23:52

수정버튼 누르면 나이, 이메일, 연락처만 수정 되도록 한 뒤 다시 상세페이지로 돌아오도록 한다.

<input type="button" value = "수정하기" onclick="location.href='update_memberForm.me?id=${member.id}';">

1. controller

else if(command.equals("/update_memberForm.me")) {

 - input 태그 데이터를 받는다.
String id= request.getParameter("id");



(★수정페이지 이동하려면 상세페이지의 정보가 필요하다

앞서 상세정보 보기 메소드를 만들었으니 이를 활용하여

memberDAO.memberDetail(id); 회원 상세보기를 실행할게

자료형은 DTO고 변수명은 member로 해서 실행할거야)

MemberDTO member = memberDAO.memberDetail(id);



위에서 받은 member자료 수정페이지로 내보낸다.

request.setAttribute("member", member);

page="update_member.jsp";
}

 

2. 수정페이지.jsp

<form action="update_member.me" method="post">

우리는 데이터 구분을 id로 하기로 했기에 hidden으로 servlet으로 보낸다.
<input type="hidden" value="${member.id }" name="id">
수정할 수 있도록 지정한 부분은 input태그를 이용해서 수정하도록 만든다.


<div>
아이디 : ${member.id }
</div>
<div>
비밀번호 : ${member.pw }
</div>
<div>
이름 : ${member.name }
</div>
<div></div>
<div>
나이 : <input type="text" value="${member.age }" name="age">
</div>
<div>
이메일 : <input type="text" value="${member.email }" name="email">
</div>
<div>
전화번호 : 
<input type="text" value="${member.tell }" name="tell">
</div>

<div>
성별 : ${member.gender } 

</div>

<input type="submit" value="수정하기" >
</form>

3. DAO

메소드 작성 방법은 두가지 중 하나 선택하면 된다.

i) public void updateMember(int age, String email, String tell, String id) {

 

ii) 나는 아래 방법을 선택했다.

public void updateMember(MemberDTO member) {



sql="UPDATE MEMBER "
+ "SET "
+ "AGE = ?"
+ ", EMAIL= ?"
+ ", TELL= ? "
+ "WHERE ID = ?";


try {

-자바와 DB를 연결

conn = JDBCUtil.getConnection();



-쿼리를 준비
stmt = conn.prepareStatement(sql);



- ?값 설정
stmt.setInt(1, member.getAge());
stmt.setString(2, member.getEmail());
stmt.setString(3, member.getTell());
stmt.setString(4, member.getId());

stmt.executeUpdate();


} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtil.close(rs, stmt, conn);
}

}

4. Controller

else if(command.equals("/update_member.me")) {

-input태그에서 넘긴 데이터를 받는다.
String id= request.getParameter("id");
int age = Integer.parseInt(request.getParameter("age"));
String email = request.getParameter("email");
String tell = request.getParameter("tell");


메소드 실행방법도 두가지다

i) memberDAO.updateMember(age, email, tell, id);
ii) 나는 아래 방법을 선택함
MemberDTO member = new MemberDTO();
member.setId(id);
member.setAge(age);
member.setEmail(email);
member.setTell(tell);

memberDAO.updateMember(member);



조건. 팝업창으로 수정됐다고 뜨고 상세페이지로 가야한다.
request.setAttribute("id", id);   

★알림창에서 상세페이지 넘어갈 때 id로 데이터 불러올 수 있기에 id보낸다



page="update_alert.jsp";
}

 

5. 알림창

<script type="text/javascript">

alert('회원정보가 수정되었습니다.');
location.href='member_detail.me?id=${id}';

</script>