*servlet & jsp*/myBatis

[myBatis] 로그인하기

깐부로부터 2022. 2. 10. 23:34

1. 서블릿단으로 사용자한테 입력받은 아이디, 패스워드 전달해서 값 추출하기

 

 

 

 

2. 값 가공해서 서비스단으로 가공한 값 넘기기

 

 

 

 

3. mybtis 프레임워크 이용하여 SqlSession()객체 생성하고 dao단으로 서브릿단에서 가공처리한 Member와

방금 생성한 SqlSession()가지고 dao단으로 전달

 

 

4. Dao에서 아까 서비스단에서 만들어온 SqlSession으로 selectOne메소드로 쿼리문을 실행하고

Member 객체를 전달한다. => 위치홀더 채울값

 

 

 

 

5. memeberMapper의 실행시킬 쿼리문

이렇게 되는 원리~

* SELECT 문의 경우
<select id="각 sql문들의 식별자" parameterType="전달받을 자바타입(풀클래스명) 혹은 별칭" resultType="조회결과를 반환하고자하는 자바타입" 또는 resultMap="조회결과를 뽑아서 매핑할 resultMap의 id">
SQL문
</select>

=> parameterType 속성은 전달받을 값이 없다면 생략 가능하다.
=> 반드시 resultType(자바에서 제공하는 자료형) 또는 resultMap(내가 만든 VO클래스 타입)으로 결과값에 대한 타입을 지정해야 한다.
=> 왜냐? 항상 SELECT는 결과가 다를 수 있으니까 ex) count(*)정수 조회

* DML문의 경우 어차피 실행결과가 처리된 행의 갯수(int)이기 때문에 resultType 또는 resultMap안써도됨
* 대신에 해당 sql문에 전달된 객체로부터 값을 꺼내서#{필드명 또는 변수명 또는 map의 키값} -->
* resultMap : 마이바티스의 핵심 기능 중 하나 ResultSet으로부터 조회된 컬럼값을 하나씩 뽑아서 내가 지정한 VO객체에 각 필드에 담을 수 있다.

<resultMap id="식별자" type="조회된 결과를 담아서 반환하고자 하는 VO객체의 타입(풀클래스명) 또는 별칭"> <result column="조회결과를 뽑고자 하는 DB컬럼명" property="해당 결과를 담고자 하는 필드명"/>
<result column="조회결과를 뽑고자 하는 DB컬럼명" property="해당 결과를 담고자 하는 필드명"/>
........................................
</resultMap>

 

 

 

 

6. 다시 dao로 조회한 결과의 Member객체 담아서 서비스단으로 리턴

 

 

 

7. 결과값 전달받은 서비스단은 다시 서블릿(컨트롤러)단으로 결과값 전달

 

 

 

8. 서블릿단에서 응답페이지 지정해주기

 

 

 

9. 응답페이지에서 el로 값 꺼내기

'*servlet & jsp* > myBatis' 카테고리의 다른 글

[myBatis] 댓글달기 / 페이징처리  (0) 2022.02.13
[myBatis] 게시글 상세보기 / 댓글달기  (0) 2022.02.12
[myBatis] 페이징처리  (0) 2022.02.11