Mybatis
Mybatis
Mybatis란?
- 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 보다 쉽게 도와주는 프레임워크
- 자바에서 데이터베이스 프로그래밍을 하기 위해 JDBC를 제공
- Mybatis는 JDBC를 보다 편하게 사용하기 위해 개발되었다.
- JDBC를 통해 데이터베이스에 접근하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거한다.
Mybatis 특징
- SQL 문이 코드로부터 완전히 분리
- 생산성
- 유지 보수성 향상
- Mapper 파일에만 SQL 코드를 입력하고 나중에 SQL 코드를 변경할 때 이곳에서 유지보수만 하면, DAO에서는 아무런 영향을 받지 않는다.
- 복잡한 쿼리나 다이나믹한 쿼리에 강하다.
Mybatis 구조
Mybatis 동작 원리
- 응용 프로그램이 SqlSessionFactoryBuilder를 위해 SqlSessionFactory를 빌드하도록 요청합니다.
- SqlSessionFactoryBuilder는 SqlSessionFactory를 생성하기 위한 Mybatis 구성 파일을 읽습니다.
- SqlSessionFactoryBuilder는 Mybatis 구성 파일의 정의에 따라 SqlSessionFactory를 생성합니다.
- 클라이언트가 응용 프로그램에 대한 프로세스를 요청
- 응용프로그램은 SqlSessionFactory에서 SqlSession을 가져온다.
- SqlSessionFactory는 SqlSession을 생성하고 이를 애플리케이션에게 반환한다.
- 응용프로그램이 SqlSession에서 매퍼 인터페이스의 구현 개체를 가져온다.
- 응용 프로그램이 매퍼 인터페이스 메서드를 호출한다.
- 매퍼 인터페이스의 구현 개체가 SqlSession 메서드를 호출하고 SQL 실행을 요청한다.
- SqlSession매핑 파일에서 실행할 SQL을 가져와 SQL을 실행한다.
참고