일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 쇼핑몰 포트폴리오
- 스프링 프로젝트
- 인증번호 전송
- 로그인 기능
- arraylist
- oracle 설치방법
- 스프링 파일 삭제
- 회원가입 기능
- 스프링 쇼핑몰 프로젝트
- 스프링 프로젝트 기본 설정
- BCrypt 적용
- 스프링 이미지
- 이미지 출력
- 스프링 업로드
- 로그아웃 기능 구현
- 스프링 쇼핑몰
- 스프링 HikariCP
- spring 쇼핑몰
- spring 프로젝트
- 스프링 포트폴리오
- 파일 업로드
- 삭제 구현
- 스프링 프로젝트 설정
- 스프링 게시판
- 쇼핑몰 프로젝트
- Bcrypt
- ResponseEntity
- 스프링 게시판 구현
- 정규표현식
- 스프링 메일 전송
- Today
- Total
Kim VamPa
[Spring][쇼핑몰 프로젝트][8] 로그인 기능 구현(쿼리문, mapper,service) 본문
[Spring][쇼핑몰 프로젝트][8] 로그인 기능 구현(쿼리문, mapper,service)
Kim VamPa 2020. 12. 14. 20:59프로젝트 Github : https://github.com/sjinjin7/Blog_Project
프로젝트 포스팅 색인(index) : https://kimvampa.tistory.com/188
목표
로그인 기능에 사용할 쿼리문 작성
2~3회 포스팅에 걸쳐서 진행될 로그인 기능 구현의 전체적인 방향은 다음과 같습니다.
1. 아이디, 비번 입력 후 서버 제출
2. DB 요청하여 아이디, 비번 일치 여부 확인
3. 일치시 메인 페이지 이동
4. 불일치시 로그인 페이지 이동
이번 포스팅에선 "2. DB 요청하여 아이디 비번 일치 여부 확인"을 위해 사용될 쿼리문, mapper 인터페이스, service 인터페이스, 클래스를 작성할 것입니다.
순서
1. 쿼리문 작성 & MemberMapper.xml 작성
2. MemberMapper.java 인터페이스 작성
3. mapper 로그인 메서드 테스트
4. MemberService.java 인터페이스, 클래스 작성
1. 쿼리문 작성 & MemberMapper.xml 작성
로그인에 사용할 쿼리문은 제출받은 로그인, 비밀번호 데이터와 비교하여 일치하는 데이터가 있을 시 해당 아이디의 정보를 반환하고, 없을 시 null을 반환하도록 할 것입니다. 쿼리문은 MemberMapper.xml에 작성해야 하는데 하기 전 쿼리문이 정상적으로 실행이 되는지 sqldeveloper(OracleDB)에서 먼저 작성하여 실행해보겠습니다.
먼저 테스트에 사용하기 위해서 회원가입된 아이디와 비밀번호를 확인해보겠습니다.
select * from BOOK_MEMBER;
|
위의 결과 테이블에서 아이디와 비밀번호를 선택하여 아래의 select 쿼리문을 작성하여 실행합니다. 찾고자 하는 열은 memberId, memberName, money, point입니다. ( 추후에 session에 담아서 메인 페이지에 사용자의 정보를 담기 위해 해당 열들을 검색하였습니다.)
SELECT MEMBERID, MEMBERNAME, ADMINCK, MONEY, POINT FROM book_member where MEMBERID = '테스트할 아이디' AND MEMBERPW = '테스트할 비밀번호';
|
테스트를 한 쿼리문을 사용하여 MemberMapper.xml에 쿼리문을 작성합니다. 해당 쿼리 문의 아이디, 비밀번호 파라미터는 MemberVO 클래스의 memberId, memberPw 변수를 삽입합니다. 해당 쿼리문을 요청하는 MemberMapper.java의 로그인 메서드가 아이디, 비밀번호를 담고 있는 MemberVO 객체를 파라미터로 사용하기 때문입니다.
* MyBatis 사용법은 공식 홈페이지를 참고해주세요.
* 파라미터("#{}")는 반드시 전달받는 객체 내부의 변수명과 동일하게 해 주세요.
* MemberMapper.xml에 작성하는 쿼리문에는 반드시 '세미콜론( ; )'을 제거해주세요.
<!-- 로그인 -->
<select id="memberLogin" resultType="com.vam.model.MemberVO">
select memberId, memberName, adminck, money, point from book_member where memberId = #{memberId} and memberPw = #{memberPw}
</select>
|
2. MemberMapper.java 인터페이스 작성
MemberVO를 파라미터로 하고 MemberVO로 반환받는 로그인 메서드를 추가합니다.
/* 로그인 */
public MemberVO memberLogin(MemberVO member);
|
3. mapper 로그인 메서드 테스트
Junit을 통해 쿼리를 요청하는 메서드가 정상적으로 동작하는지를 확인해보겠습니다. src/test/java 경로의 com.vam.member 패키지에 작성해둔 MemberMapperTests.java를 활용하여 테스트를 진행하겠습니다. (새로운 클래스를 생성하여 테스트를 진행하셔도 상관없습니다.)
기존에 회원가입 쿼리 mapper 메서드를 테스트하기 위해 사용했던 메서드는 주석 처리합니다. 아래의 코드를 통해 Junit 테스트를 진행하여 로그인 쿼리 mapper 메서드가 정상적으로 진행되는지 확인합니다.
/* 로그인 쿼리 mapper 메서드 테스트 */
@Test
public void memberLogin() throws Exception{
MemberVO member = new MemberVO(); // MemberVO 변수 선언 및 초기화
/* 올바른 아이디 비번 입력경우 */
member.setMemberId("test1");
member.setMemberPw("test1");
/* 올바른 않은 아이디 비번 입력경우 */
//member.setMemberId("test1123");
//member.setMemberPw("test1321321");
membermapper.memberLogin(member);
System.out.println("결과 값 : " + membermapper.memberLogin(member));
}
|
- 올바른 아이디 비번 입력 경우
- 올바르지 않은 아이디 비번 입력 경우
4. MemberService.java 인터페이스, 클래스 작성
MemberService.java 인터페이스에 아래의 로그인 메서드를 추가합니다. (MemberVO를 파라미터, 반환 값으로 사용합니다.)
/* 로그인 */
public MemberVO memberLogin(MemberVO member) throws Exception;
|
MemberService.java 클래스에 아래의 메서드를 추가합니다.
/* 로그인 */
@Override
public MemberVO memberLogin(MemberVO member) throws Exception {
return membermapper.memberLogin(member);
}
|
DATE
- 2020.12.14
- 2020.12.15 수정 - select 쿼리문에 검색할 대상 데이터 adminCk 추가
'스프링 프레임워크 > 쇼핑몰 프로젝트' 카테고리의 다른 글
[Spring][쇼핑몰 프로젝트][8] 로그인 기능 구현(페이지 데이터 처리) (19) | 2020.12.16 |
---|---|
[Spring][쇼핑몰 프로젝트][8] 로그인 기능 구현(페이지,메서드) (5) | 2020.12.15 |
[Spring][쇼핑몰 프로젝트][7] 이메일 형식 유효성 검사 (1) | 2020.12.07 |
[Spring][쇼핑몰 프로젝트][6]회원가입 유효성 검사(3) (27) | 2020.12.06 |
[Spring][쇼핑몰 프로젝트][6]회원가입 유효성 검사(2) (4) | 2020.12.04 |