스타터스 백엔드 3기

[ Spring ] 5. MyBatis

HARURAH 2023. 1. 16. 17:18

하루입니다.

 

블로그 작성 규칙

1. 매 시간 배운 내용은 가급적 쉬는시간에 모두 정리하도록 한다.

2. 만약 배운 내용을 모두 정리하지 못했을 경우, 7시 이내로 정리를 마친다.

3. 기록보단 실습에 집중하자.

 

 

 


 

 

 

 

 

 

 

 

pom.xml에 mariaDB, mybatis 라이브러리 추가

  • mybatis를 사용해 mariadb에 연동하기 위해 사용한다.
  • first - mybatis 위치 경로

 

 

 

mybatis mapping 하는 법

1. db 연결정보설정파일.xml 만들기

2. sql-mapping.xml 파일 만들기

        <select id="a" paramaterType="String" resultType="MemberDto">

                   select * from member where id = #{b}

        </select>

3. Main에서 할일 : db 연결정보설정파일.xml 읽어오기  ==>  SqlSession 객체 생성하기

                            : MemberDto dto = SqlSession객체.selectOne("a", "mariadb");

4. 이 방식으로 service - dao - dto 연결한다.

 

 

 

 

 

db연결정보설정파일.xml 만들기

1. mybatis 패키지 생성

 

2. mybatis-config.xml 파일 생성

 

3. datasource 설정(연결할 데이터베이스에 대한 설정), sql매핑설정파일.xml (mapper파일)설정하기

   datasource 설정(연결할 데이터베이스에 대한 설정)

 

 

sql매핑설정파일.xml (mapper파일)설정하기

 

 

4. main(controller) 생성

 

5. 결과 출력

 

 

 


 

 

 

service - dao - dto (List를 반환하는 경우)

  • dao에게 일을 시키는 기능 단위가 service이다.





 

 

 

 

 

service - dao - dto (int를 반환하는 경우)


MemberMain








 

 

 

 

 

service - dao - dto (입력파라미터를 받으며, 하나의 dto를 반환하는 경우)

MemberMain




 

 

 

 

 

 

service - dao - dto (입력파라미터배열을 받으며, 페이징처리하는 경우)

MemberMain

 

 

 


 

 

<typeAlias> 주기 : mybatis-config.xml에서 설정한다.

 

 

 


 

 

insert하기

!!! mybatis는 수동 커밋! factory.openSession(true) 로 설정하면 된다 !!!

 

 

 

 

 

update / delete하기


 

 

 


 

 

mybatis에서 map 형태 데이터 받아오기 (검색)

  • HashMap에 colname과 colvalue를 map.put() 한다.
  • mapper.xml에서 ${colname}과 #{colvalue}로 받는다.

 

 

 

 

MyBatis에서 list 사용해서 where in (, , ,) 조회하기

  • open, close, seperate, collection, item 사용

 

 

 

 

 

where choose when / list를 사용한 동적 검색 쿼리문

이렇게 name만 있는 경우라면?

 

 

 

 

resultMap을 사용한 join문