-
Notifications
You must be signed in to change notification settings - Fork 74
주요 기능 소개(Member)
채현우 edited this page Jun 2, 2022
·
1 revision
- ID를 PK로 설정하여 중복 가입을 막기 위해 Ajax를 사용하여 사용자가 ID를 입력 시 이미 가입된 아이디인지 아닌지
입력하는 동시에 Text를 뿌려줌 - 주소 API를 연동하여 사용자의 주소를 입력할 수 있게 해줌
MemberController.java
//로그인 - 회원 가입 컨트롤러
@RestController("memberController")
@RequestMapping("/movie")
public class MemberController {
//얘를 호출하면 MemberServiceImpl이 딸려 들어옴
@Resource
private MemberService memberService;
//회원 가입 화면
@RequestMapping(value = "/join", method = RequestMethod.GET)
public ModelAndView join() throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("member/join");
return mav;
}
//주소 API 연결
@RequestMapping(value = "/jusoPopup")
public ModelAndView juso() throws Exception {
ModelAndView mav = new ModelAndView();
mav.setViewName("member/jusoPopup");
return mav;
}
//회원 가입 처리
@RequestMapping(value = "/join_ok", method = RequestMethod.POST)
public ModelAndView join_ok(MemberDTO dto) throws Exception{
ModelAndView mav = new ModelAndView();
memberService.memberJoin(dto);
mav.setViewName("member/login");
return mav;
}
//ID 중복 확인
@RequestMapping(value = "/idcheck",method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public Map<Object, Object> idcheck(@RequestBody String id) throws Exception {
int count=0;
Map<Object, Object> map = new HashMap<Object, Object>();
count = memberService.idcheck(id);
map.put("cnt", count);
return map;
}
}
MemberServiceImpl.java
//MemberService 인터페이스를 구현한 Class
@Service("memberService") //객체 생성
public class MemberServiceImpl implements MemberService {
@Autowired ////memberMapper에 있는 sql문을 MemberServiceImpl로 읽어와서 의존성 주입하여 객체 생성한 것.
private MemberMapper memberMapper; //의존성 주입
//ID 중복 확인
@Override
public int idcheck(String id) throws Exception {
int count = memberMapper.idcheck(id);
return count;
}
//회원 가입 처리
@Override
public void memberJoin(MemberDTO dto) throws Exception {
memberMapper.memberjoin(dto);
}
}
memberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.finalProject.mapper.MemberMapper">
<!-- 회원 가입 -->
<insert id="memberjoin" parameterType="com.finalProject.dto.MemberDTO">
insert into moviemember (id,name,pwd,email1,email2,roadFullAddr,birth_year,birth_month,birth_day) values
(#{id},#{name},#{pwd},#{email1},#{email2},#{roadFullAddr},#{birth_year},#{birth_month},#{birth_day})
</insert>
</mapper>
Image
- 로그인을 했을 때 수정이 가능하고, 로그인 시 생성되는 Session 정보를 토대로 회원 정보를 가져옴
- ID와 이름을 수정을 못하고 나머지 정보는 수정 가능
- 주소 API 연동(회원 가입과 동일)
MemberController.java
//로그인 - 회원 가입 컨트롤러
@RestController("memberController")
@RequestMapping("/movie")
public class MemberController {
//얘를 호출하면 MemberServiceImpl이 딸려 들어옴
@Resource
private MemberService memberService;
//마이 페이지
// - 여기에 로그인 된 유저의 회원 정보를 불러온다.(getReadData)
@RequestMapping(value = "/mypage", method = {RequestMethod.POST, RequestMethod.GET})
public ModelAndView myPage(HttpServletRequest request, HttpServletResponse response
,HttpSession session) throws Exception {
ModelAndView mav = new ModelAndView();
MemberDTO info=(MemberDTO)session.getAttribute("customInfo");
MemberDTO dto=memberService.getReadData(info.getId());
request.setAttribute("dto", dto);
mav.setViewName("member/mypage");
return mav;
}
//마이 페이지 처리(DB에 수정된 값 저장)
@RequestMapping(value = "/mypage_ok", method = {RequestMethod.POST, RequestMethod.GET})
public ModelAndView myPage_ok(MemberDTO dto, HttpServletRequest request, HttpServletResponse response
,HttpSession session) throws Exception {
ModelAndView mav = new ModelAndView();
MemberDTO info=(MemberDTO)session.getAttribute("customInfo");
dto.setId(info.getId());
memberService.updateMember(dto);
mav.setViewName("redirect:/main");
return mav;
}
}
MemberServiceImpl.java
//MemberService 인터페이스를 구현한 Class
@Service("memberService") //객체 생성
public class MemberServiceImpl implements MemberService {
@Autowired ////memberMapper에 있는 sql문을 MemberServiceImpl로 읽어와서 의존성 주입하여 객체 생성한 것.
private MemberMapper memberMapper; //의존성 주입
// 마이 페이지(회원 정보 수정)
@Override
public void updateMember(MemberDTO dto) throws Exception {
memberMapper.updateMember(dto);
}
}
memberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.finalProject.mapper.MemberMapper">
<!-- 하나의 유저 정보 가져오기(세션, 마이페이지 수정할때 User 정보 불러오기) -->
<select id="getReadData" parameterType="String" resultType="com.finalProject.dto.MemberDTO">
select id,name,pwd,email1,email2,roadFullAddr,birth_year,birth_month,birth_day
from moviemember where id = #{id}
</select>
<!-- 회원 정보 수정(MyPage) -->
<update id="updateMember" parameterType="com.finalProject.dto.MemberDTO">
update moviemember set pwd=#{pwd},email1=#{email1},email2=#{email2},roadFullAddr=#{roadFullAddr},birth_year=#{birth_year},birth_month=#{birth_month},birth_day=#{birth_day}
where id = #{id}
</update>
</mapper>