● 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 |