⛏️/Spring

[Spring] 로그인 ver

defyuil 2023. 12. 1. 11:37

[로그인 처리 동작]

 

DAO 추가

	// 로그인 처리 동작
	public MemberVO loginMember(String userid, String userpw);
	public MemberVO loginMember(MemberVO vo);

 

-> 나중에 문제 될 상황들을 대비하면 두 번째 코드가 좋다

 

 

DAOImpl 추가

	@Override
	public MemberVO loginMember(MemberVO vo) {
		logger.debug(" loginMember(MemberVO vo)  호출 ");
		logger.debug(" DAO -> mapper 호출 ");
		
		
		return null;
	}

 

 

memberMapper 추가

  <!-- 로그인 -->
  <select id="loginMember" resultType="com.itwillbs.domain.MemberVO">
  	select * from tbl_member
  	where userid=#{userid} and userpw=#{userpw}
  </select>

 

 

DAOImpl 추가

	@Override
	public MemberVO loginMember(MemberVO vo) {
		logger.debug(" loginMember(MemberVO vo)  호출 ");
		logger.debug(" DAO -> mapper 호출 ");
		
		MemberVO resultVO
			= sqlSession.selectOne(NAMESPACE + ".loginMember",vo);
		
		logger.debug(" 결과 : "+resultVO);
		
		return resultVO;
	}

 

 

DAOImpl 추가

	@Test
	public void 로그인_테스트() {
		logger.debug(" 로그인_테스트() ");
		
		MemberVO vo = new MemberVO();
		vo.setUserid("admin");
		vo.setUserpw("1234");
		
		MemberVO resultVO = mdao.loginMember(vo);
		
		logger.debug(" 결과: "+resultVO );
	}

 

 

결과

 

 

 

if 구문을 추가해 로그인 성공, 실패 메시지 콘솔에 뜨기 하기

		if(resultVO != null) {
			logger.debug(" 로그인 성공!! ");
		} else {
			logger.debug(" 로그인 실패!! ");
		}

 

 

[매개변수 ver]

DAO

	// 로그인 처리 동작
	public MemberVO loginMember(MemberVO vo);
	public MemberVO loginMember(String userid, String userpw);

 

 

DAOImpl 추가

	@Override
	public MemberVO loginMember (String userid, String userpw) {
		logger.debug(" loginMember(String userid, String userpw) 실행");
		MemberVO vo = new MemberVO();
		vo.setUserid(userid);
		vo.setUserpw(userpw);
		
		MemberVO  resultVO
			= sqlSession.selectOne(NAMESPACE + ".loginMember", vo);
			// => mapper로 전달가능한 객체는 1개뿐
		
			return resultVO;
	}

 

 

 

만약 userid, boardpw를 가져오고 싶을 경우... 둘을 가져오는 건 불가능하다!

전달된 정보가 하나의 객체(VO)저장이 불가능한 경우 => JOIN

=> 하나의 형태로 만들어서 mapper 전달

	@Override
	public MemberVO loginMember (String userid, String boardpw) {
		logger.debug(" loginMember(String userid, String boardpw) 실행");
//		MemberVO vo = new MemberVO();
//		vo.setUserid(userid);
//		vo.setUserpw(userpw);
		
		// 전달된 정보가 하나의 객체(VO)저장이 불가능한 경우 => JOIN
		// => 하나의 형태로 만들어서 mapper 전달
		// Map<K,V> 컬렉션 사용
		Map<String, Object> paramMap
				= new HashMap<String, Object>();
		
		paramMap.put("userid", userid);
		paramMap.put("userpw", boardpw);
		
		MemberVO  resultVO
			= sqlSession.selectOne(NAMESPACE + ".loginMember", paramMap);
			// => mapper로 전달가능한 객체는 1개뿐
		
			return resultVO;
	}