Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/플러스 알파

[ Mybatis ] - mapper.xml 파일 만들고 Mybatis와 매핑하기

giggs 2022. 9. 5. 11:20

 

 

-- INDEX --

 

 

1. Mapper
파일이란?
2. 실행 방식
체크
3. 생성 경로
체크
4. Mybatis와
매핑하기
5. Mapper파일
생성하기
6. 쿼리
작성 방법
7. 쿼리
작성해보기
DB에 사용되는
쿼리문
담겨있는
xml파일
Mybatis와 파일연결
dao레이어에서 매퍼파일 호출
최상단경로
폴더 하위에
생성
<mappers>
<mapper 
    resource ="">
공홈참조
namesapce
id
객체 -#{필드}
변수 -#{변수명}
맵 -#{key}
<insert id="">
<select id="">

 

 

 

 


 

 

 

1. Mapper 파일이란?

  • Mybatis ㅡ config.xml 파일에 있는 <mappers> 태그 설정 ㅡ 안에 넣어 줄 <mapper> 파일
  • DB에 사용되는 쿼리문들이 담겨있는 xml파일

 

 


 

 

2. 실행 방식 체크

  • mybatis [ 설정.xml파일 ]에서 - 쿼리문 모아놓은 [ 매퍼.xml ]파일 연결해 놓으면
  • [ dao레이어 ]에서 쿼리문 실행시 mybatis와 연결된 [ 매퍼.xml ] 파일 찾아간다.
  • 정확히는 [ 매퍼 파일의 namespace ]와 [ 쿼리문의 id ] 식별자를 찾아가서 실행한다.

 

 

 

 


 

 

 

3. 파일 생성 경로 체크 

  • 최상단 SourceFolder인 - resources 폴더 하위에 작성
  • resources / mapper / member-mapper.xml 경로로 만들어 주었다.

 

 

 

 

 

 

 

 


 

 

 

 

4. 매퍼.xml 파일과 설정.xml 연결하기

  • 이 연결은 mybatis 가 매퍼파일.xml 인식하도록 설정해주는 작업

 

설정파일에서 매핑해주기

 

 

 

 


 

 

 

 

5. 매퍼 파일 생성하기

 

 

 

5-1 : 매퍼파일에는 어떤 내용을 써야 하나 공식문서 참조

 

 

 

1 - xml파일이다.

2 - 타입은 매퍼파일이고 –  .dtd 이 파일을 참조했다

3 - <mapper> 태그 안에 insert / select 등 태그를 이용해서 sql 작성할 것이다.

 

 


 

 

5-2 : < mapper > 의 namespace 부여하기

  • dao에서 해당 매퍼 파일을 호출할 때 사용

 


 

5-3 : sql 태그의 id 부여하기

  • 해당 매퍼 파일 안에 - 존재하는 sql문을 찾는 식별자

 

 

 

 

 

 

 


 

 

 

 

6 : 쿼리문 작성 방법

  • DAO에서 쿼리문 호출 시 같이 전달해주는 애들은
  • SQL 구문 완성하라고 넘겨주는 것이다. [ 객체, 변수, map 등 ]
  • 전달받은 데이터 타입에 맞춰서 쿼리문의 [ ? ] 채워서 완성해주면된다.

 

 

 

 

 


 

 

6-1 : 객체를 전달 받은 경우

  • 객체를 전달받은 경우 : #{ 필드명 } 해주면
  • Mybatis가 전달받은 객체를 인식하고
  • 해당 객체의 필드명의 getter 실행해서 값을 자동으로 넣어준다.

 

 

 

 

 

 

 

 


 

 

 

6-2 : 전달받은 데이터 타입에 맞춰서 쿼리문 완성해주기

  • 객체를 전달받았으면 ㅡ # { 필드명 }
  • 변수를 전달받았으면 ㅡ #{ 변수명 }
  • map을 전달받았으면 ㅡ #{ key값 }

 

 

 

 

 

변수가 전달되는 경우에는 변수명 아무거나 사용해도 잘 전달된다.

(어차피 1개 전달된거라서)

 

 

 

 

 


 

 

 

 

7. 쿼리문 작성해보기

 

 

7-1 : < insert 쿼리 > 작성해보기 

  • 원래는 parameterType을 지정해 주어야 했지만 -
  • 요즘 버전에서는 생략해도 Mybatis가 자동으로 인식해 주어서 잘 작동한다.

 

등록해놓은 별칭 사용하여 parameterType 설정

 

 

 

# 요즘 버전으로는 Mybatis가 똑똑해져서 parameterType 안 쓰고 사용해도 작동한다.

dml 애들은 실행결과가 int 로 나오니 returnType 지정 필요 없다..

 

 

 


 

 

7-2 : <select 쿼리 > 작성해보기 

  • 파라미터 타입까지는 똑같은데
  • DQL 은 반환 값이 있기 때문에 리턴 타입 지정해주어야 한다.
  • [ resultType ] 또는  [ resultMap ]
  • 2가지 중에 한 가지 사용해서지정해주어야 한다.