본문 바로가기
Spring

[스프링] MyBatis

by chu_dw 2023. 8. 1.

● MyBatis 개요

 

MyBatis

- sql과 자바 객체를 매핑하는 사상에서 개발된 데이터베이스 접근용 프레임워크

 

MyBatis 장점

- sql의 체계적 관리

- 자바 객체와 sql 입출력 값의 바인딩

- 동적 sql 조합

 

주요 컴포넌트

-  SqlSessionFactoryBuilder : MyBatis 설정 파일을 바탕으로 SqlSessionFActory 생성

- SqlSessionFactoory : sqlSession 생성을 위한 컴포넌트

- SqlSession : sql 발행과 트랜잭션 관리

- Mapper 인터페이스 : 매핑 파일과 sql에 대응하는 자바 인터페이스

 

sqlSession

- MyBatis의 핵심 API

- sqlSession 객체를 DAO 객체에 의존관계 주입으로 사용 

- 네임스페이스와 sql ID 조합으로 접근 (다양한 api 제공)

 

 

MyBatis 연동을 위한 라이브러리

- spring-jdbc : 스프링이 제공하는 jdbc 매핑 모듈

- Mybatis-Spring : 마이바티스가 제공하는 프레임워크 간의 연동 라이브러리

- MyBatis : 마이바티스 프레임워크 모듈

- commons-dbcp : 커넥션 풀 라이브러리

- mysql-connector-java : 사용할 데이터베이스 jdbc 라이브러리

 

 

● MyBatis 연동 설정

 

MyBatis 연동을 위한 의존 관계 설정 (root-context.xml)

- 커넥션 풀을 지원하는 데이터 소스 빈을 등록한다.

- 스프링의 트랜잭션 관리자의 빈을 등록한다.

- MyBatis의 SqlSessionFactory 빈을 등록한다.

- Mybatis-Spring의 SqlSessionTemplate빈을 등록한다.

 

 

● MyBatis 개발

 

매핑 파일 작성

- root-context.xml 의 mapperLocation 속성 파일 위치 설정

- Mapper는 sql 문을 저장하는 곳

- Mapper를 통해서 sql문과 객체를 연결

- 파일명은 Mapper 인터페이스 명으로 한다.

 

sql 삽입 값의 연계 방법

- 파라미터가 자바빈즈 객체인 경우 : #{num} 은 getNum(), setNum()을 의미

- 파라미터가 하나이고, 기본 자료형이나 문자일 경우 : 값을 그대로 전달

 

crud 조작

- 매퍼의 sql 반환 값에 따라 DAO 객체의 메서드 타입이 결정

 

- INSERT : 등록 건수(Int/long) , 등록 여부(boolean)

- UPDATE : 갱신 건수 1건, 그 외 갱신 건수int/long)

- DELETE : 삭제 건수 1건, 그외 삭제 건수(int/long)

- READ : sql 반환 값은 자동적으로 객체와 매핑 된다.

'Spring' 카테고리의 다른 글

[스프링] 트랜잭션  (0) 2023.08.04
[스프링] AOP  (0) 2023.08.02
[스프링] REST 아키텍처  (0) 2023.08.01
[스프링] mvc 패턴  (0) 2023.07.04
[스프링] jdbc 추가  (0) 2023.04.10