60. 스프링으로 회원정보 수정하기

hanahana·2022년 9월 7일
0

Spring 학원수강

목록 보기
10/45
post-thumbnail

60. 스프링으로 마이페이지 만들기 (velog.io) 에서 만든 페이지의 값을 전송해 회원정보를 수정한다.

Controller에 수정코드 만들기

@RequestMapping(value = "/member/modify.kh", method = RequestMethod.POST)
	public ModelAndView memberModify(
@ModelAttribute Member member, 
@RequestParam("post") String post,
@RequestParam("address") String address,
ModelAndView mv //ModelAndView를 활용하여 return과 값전달코드 작성
			) {

		try {
			member.setMemberAddress(post + "," + address);
			int result = mService.modifyMember(member);
			if (result == 1) {
				mv.setViewName("redirect:/home.kh");

			} else {
				mv.addObject("msg","회원 수정 실패");
				mv.setViewName("common/erroPage");
			}

		} catch (Exception e) {

			mv.addObject("msg",e.getMessage());
			mv.setViewName("common/erroPage");
		}
		
		return mv;

	}
  • 매개변수와 메소드 return 자료형에 ModelAndView를 선언하였다,
  • modelandview는 이 코드만으로 리턴값을 설정하며 데이터베이스에서 전송한 값을 전달할때 사용할수있다.
//				return "redirect:/home.kh";
				mv.setViewName("redirect:/home.kh");

//				model.addAttribute("msg", "회원수정 실패");
//				return "common/errorPage";
				
				mv.addObject("msg","회원 수정 실패");
				mv.setViewName("common/erroPage");
  • 주석처리한 코드와 mv.으로 표기한 코드는 같은 결과를 나타낸다,

service

@Override
	public int modifyMember(Member member) {
		int result = mStore.updateMember(session, member);
		return result;
	}
  • 세션과 매개변수를 전달

Store

@Override
	public int updateMember(SqlSession session, Member member) {
		int result = session.update("MemberMapper.updateMember",member);
		return result;
	}
  • 전송받은 Member를 session을 통해 접속한 데이터베이스의 쿼리문에 전달하고 전송값을 받는다.

Mapper

<update id="updateMember" parameterType="Member"> 
<!-- paramaterType은 자동형변환돼서 쓸필요는 없다, 원래는 type의 클래스의 정확한 주소를 적어야 함 -->
update member_tbl set member_pwd = #{memberPw}, member_email=#{memberEmail}, member_phone =#{memberPhone}, member_addr=#{memberAddress}, update_date = default where member_id=#{memberId}

</update>
profile
hello world

0개의 댓글