스프링으로 쇼핑몰을 만들어보자9 - 로그인 기능 구현
기능구현
- 회원가입(주소API연동, 이메일 인증, ajax를 사용하여 아이디 중복검사)
- 관리자 페이지(인터셉터 적용, 상품관리, 회원관리)
- 업로드(이미지 등록, 수정, 삭제)
- 검색
- 페이징
- 구매(장바구니, 포인트사용)
- 댓글(등록,수정,삭제)
- 중간에 막혔거나 에러 해결 못하겠으면 yoonbitnara@gmail.com 으로 문의
순서
- 쿼리문 작성 &
MemberMapper.xml
작성 MemberMapper.java
인터페이스 작성- mapper 로그인 메서드 테스트
MemberService.java
인터페이스, 클래스 작성
쿼리문 작성 & MemberMapper.xml 작성
- 로그인에 사용할 쿼리문은 제출받은 로그인 비밀번호 데이터와 비교하여 일치하는 데이터가 있을 시 해당 아이디의 정보를 반환하고 없을 시 null을 반환하도록 할 것이다. 쿼리문은
MemberMapper.xml
에 작성해야 하는데 하기 전 쿼리문이 정상적으로 실행이 되는지 sql 프로그램에서 먼저 작성하여 실행해본다.
select memberId, memberName, adminCk, money, point from book_member where memberId = '테스트할 아이디' and memberPw = '테스트할 비밀번호';
- 테스트를 한 쿼리문을 사용하여
MemberMapper.xml
에 쿼리문을 작성한다. 해당 쿼리문의 아이디, 비밀번호 파라미터는MemberVO
클래스의memberId
,memberPw
변수를 삽입한다. 해당 쿼리문을 요청하는MemberMapper.java
의 로그인 메서드가 아이디, 비밀번호를 담고있는MemberVO
객체를 파라미터로 사용하기 때문이다.
MemberMapper.xml
<!-- 로그인 -->
<select id="memberLogin" resultType="com.store.model.MemberVO">
select memberId, memberName, adminCk, money, point from book_member where memberId = #{memberId} and memberPw = #{memberPw}
</select>
MemberMapper.java 인터페이스 작성
MemberVO
를 파라미터로 하고MemberVO
로 반환받는 로그인 메서드를 추가한다.
// 로그인
public MemberVO memberLogin(MemberVO member);
mapper 로그인 메서드 테스트
- Junit을 통해 쿼리를 요청하는 메서드가 정상적으로 동작하는지를 확인해야 한다.
src/test/java
경로의com.store.mapper
패키지에 작성해둔MemberMapperTests.java
를 활용할 예정이다. 새로운 클래스를 생성하여 테스트를 해도 무관하다.
- 기존에 회원가입 쿼리 mapper 메스드를 테스트 하기 위해 사용했던 메서드는 주석처리하고 아래의 코드를 참고하여 Junit테스트를 진행한다.
/* 로그인 쿼리 mapper 메서드 테스트 */
@Test
public void memberLogin() throws Exception {
MemberVO member = new MemberVO(); // MemberVO 변수 선언 및 초기화
/* 올바른 아이디 비번 입력의 경우 */
member.setMemberId("test");
member.setMemberPw("test123");
/* 올바르지 않은 아이디 비번 입력의 경우 */
//member.setMemberId("");
//member.setMemberPw("");
memberMapper.memberLogin(member);
System.out.println("결과값 : " + memberMapper.memberLogin(member));
}
- 올바르지 않은 아이디 테스트
/* 로그인 쿼리 mapper 메서드 테스트 */
@Test
public void memberLogin() throws Exception {
MemberVO member = new MemberVO(); // MemberVO 변수 선언 및 초기화
/* 올바른 아이디 비번 입력의 경우 */
//member.setMemberId("test");
//member.setMemberPw("test123");
/* 올바르지 않은 아이디 비번 입력의 경우 */
member.setMemberId("test");
member.setMemberPw("teqweqweasd");
memberMapper.memberLogin(member);
System.out.println("결과값 : " + memberMapper.memberLogin(member));
}
MemberService.java 인터페이스, 클래스 작성
MemberService.java
인터페이스에 아래의 로그인 메서드를 추가한다.
// 로그인
public MemberVO memberLogin(MemberVO memberVO) throws Exception;
package com.store.service;
import com.store.model.MemberVO;
public interface MemberService {
// 회원가입
public void memberJoin(MemberVO member) throws Exception;
// 아이디 중복 검사
public int idCheck(String memberId) throws Exception;
// 로그인
public MemberVO memberLogin(MemberVO memberVO) throws Exception;
}
MemberServiceImpl.java
클래스에 아래의 메서드를 추가한다.
// 로그인
@Override
public MemberVO memberLogin(MemberVO member) throws Exception {
return memberMapper.memberLogin(member);
}
package com.store.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.store.mapper.MemberMapper;
import com.store.model.MemberVO;
@Service
public class MemberServiceImpl implements MemberService{
@Autowired
MemberMapper memberMapper;
// 회원가입
@Override
public void memberJoin(MemberVO member) throws Exception {
memberMapper.memberJoin(member);
}
// id 중복검사
@Override
public int idCheck(String memberId) throws Exception {
return memberMapper.idCheck(memberId);
}
// 로그인
@Override
public MemberVO memberLogin(MemberVO member) throws Exception {
return memberMapper.memberLogin(member);
}
}
Leave a comment