YJ의 새벽
JDBC 활용 연습용9. ( 회원정보수정 ) 본문
수정을 하면 ??
DB 의 정보도 수정 .
--------->>>
-- 회원정보수정 form 에 infoValidate() 함수가 적용되어있다 .
--회원정보 수정 myPage.js 구문.
//////////////////////////////////////////// 회원정보 수정
function infoValidate(){
const memberNickname = document.getElementById("memberNickname");
const memberTel = document.getElementById("memberTel");
const regExp1 = /^[a-zA-Z0-9가-힣]{2,10}$/; // 닉네임 정규식
const regExp2 = /^0(1[01679]|2|[3-6][1-5]|70)\d{3,4}\d{4}$/; // 전화번호 정규식
// 닉네임 유효성 검사
if(memberNickname.value.length == 0){ // 미작성 시 : 닉네임을 입력해주세요.
alert("닉네임을 입력해주세요.");
memberNickname.focus();
return false;
}
if(!regExp1.test(memberNickname.value)){ // 유효하지 않은 경우
alert("닉네임은 영어/숫자/한글 2~10 글자 사이로 작성해주세요.");
memberNickname.focus();
return false;
}
// 전화번호 유효성 검사
if(memberTel.value.length == 0){ // 미작성 시
alert("전화번호를 입력해주세요.(- 제외)");
memberTel.focus();
return false;
}
if(!regExp2.test(memberTel.value)){ // 유효하지 않은 경우
// alert(" 전화번호 형식이 올바르지 않습니다.");
// memberTel.focus();
// return false;
return printAlert(memberTel, "전화번호 형식이 올바르지 않습니다.");
}
return true; // true를 반환해서 form 제출 수행
}
function printAlert(el, message){ // 매개변수 el은 요소
alert(message);
el.focus();
return false;
}
-- 회원정보수정 MyPageInfoServlet.class
@WebServlet("/member/myPage/info")
public class MyPageInfoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String path = "/WEB-INF/views/member/myPage-info.jsp";
req.getRequestDispatcher(path).forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String memberNickname = req.getParameter("memberNickname");
String memberTel = req.getParameter("memberTel");
String[] memberAddress = req.getParameterValues("memberAddress");
for (String i : memberAddress) {
System.out.println(i);
}
try {
HttpSession session = req.getSession();
Member loginMember = (Member) session.getAttribute("loginMember");
int loginMemberNo = loginMember.getMemberNo();
MemberService service = new MemberService();
int result = service.updateInfo(loginMemberNo, memberNickname, memberTel, memberAddress);
loginMember.setMemberNickname(memberNickname);
loginMember.setMemberTel(memberTel);
loginMember.setMemberAddress(memberAddress[0] + ", " + memberAddress[1] + ", " + memberAddress[2]);
if (result > 0) {
session.setAttribute("message", "정보수정 성공");
} else {
session.setAttribute("message", "정보수정 실패");
}
} catch (Exception e) {
e.printStackTrace();
}
resp.sendRedirect("info");
}
}
-- 회원정보수정 MemberService.class updateInfo() 서비스클래스
/**
* 회원정보 업데이트 서비스 ( 닉네임, 전화번호 )
*
* @param loginMemberNo
* @param memberNickname
* @param memberTel
* @param memberAddress
* @return
*/
public int updateInfo(int loginMemberNo, String memberNickname, String memberTel, String[] memberAddress)
throws Exception {
Connection conn = getConnection();
int result = dao.updateInfo(conn, loginMemberNo, memberNickname, memberTel, memberAddress);
if (result > 0)
commit(conn);
else
rollback(conn);
close(conn);
return result;
}
-- 회원정보수정 MemberDAO.class
/** 회원정보 업데이트 DAO
* @param conn
* @param loginMemberNo
* @param memberNickname
* @param memberTel
* @param memberAddress
* @return
* @throws Exception
*/
public int updateInfo(Connection conn, int loginMemberNo, String memberNickname, String memberTel, String[] memberAddress) throws Exception{
int result = 0;
try {
String sql = prop.getProperty("updateInfo");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memberNickname);
pstmt.setString(2, memberTel);
pstmt.setString(3, memberAddress[0]+", "+memberAddress[1]+", "+memberAddress[2]);
pstmt.setInt(4, loginMemberNo);
result = pstmt.executeUpdate();
}finally {
close(pstmt);
}
return result;
}
-- 회원정보수정 member-sql.xml 회원정보 update 쿼리문
<entry key="updateInfo">
UPDATE MEMBER SET
MEMBER_NICK = ? ,
MEMBER_TEL = ? ,
MEMBER_ADDR = ?
WHERE MEMBER_NO = ?
</entry>
'SelfStudy > JDBC' 카테고리의 다른 글
JDBC 활용 연습용11. ( 회원탈퇴 ) (0) | 2023.04.04 |
---|---|
JDBC 활용 연습용10. ( 비밀번호 변경 ) (0) | 2023.04.04 |
JDBC 활용 연습용8. ( 로그인후 마이페이지 창 (사진업로드) ) (0) | 2023.03.30 |
JDBC 활용 연습용7. ( 회원가입 + DB저장 ) (0) | 2023.03.30 |
JDBC 활용 연습용6. ( 닉네임 중복확인 + 전화번호유효성검사 ) (0) | 2023.03.29 |
Comments