Spring - mybatis

2019. 7. 16. 17:47Spring

--------------------------------mybatis----------------------------
         
mybatis
        - SQL Mapper Framework
        - ibatis의 후속버전
          * ibatis와 mybatis는 서로 호환되지 않는다.
          * sql 매핑 방식은 ibatis와 유사하다.
        - 특징
                - #{프로퍼티} 와 같은 방식으로 매핑한다.
                - 다이나믹SQL 작성법이 간단해졌다.
                  * JSTL의 core태그 작성법과 유사
                - parameterType, resultType을 사용한다.
                - 네임스페이스가 필수다.


mybatis 주요 구성요소
        - 매퍼 파일
                SQL 정의하는 파일
        - 매퍼 인터페이스
                수행할 DB Access작업을 선언해놓은 인터페이스
        - mybatis 환경설정 파일
                mybatis와 관련된 환경설정 정보를 정의하는 파일


mybatis의 주요 API(컴포넌트)
        - 매퍼 인트턴스

        - SqlSession
                * DB Access작업과 관련된 insert(), update, delete(), 
                                selectOne(), selectList() 메소드 제공

                * 스레드 안전하지 않아도, 매번 DB Access 할 때마다 획득하고,
                                 작업이 완료되면 닫아야 된다.

                * 매퍼 인터페이스를 구현한 매퍼 인스턴스를 생성한다.

        - SqlSessionFactory
                * SqlSession객체를 제공하는 객체다.
                * 프로그램 전체에서 단 하나만 필요한 객체다.
        - SqlSessionFactoryBuilder
                * mybatis 환경설정 파일을 읽어서 SqlSessionFactory를 생성한다.




mybatis와 스프링 연동
        1. mybatis 라이브러리 의존성 추가
                
                   org.mybatis
                   mybatis
                   3.5.2
                

        2. mybatis와 스프링 연동을 지원하는 라이브러리 의존성 추가
                
                   org.mybatis
                   mybatis-spring
                   2.0.2
                



        3. /META-INF/mybatis/mappers 폴더에 매퍼파일을 생성한다.
                - SQL 정의

        4. /META-INF/mybatis에 mybatis 환경설정 파일을 생성한다.
                - 타입별칭, 매퍼파일 등록

        5. 패머 인터페이스 정의하기
                - 매퍼파일에 정의된 SQL를 실행하는데 사용될 메소드를 선언허기
                - public interface xxxDao { ... }


        6. mybatis 핵심객체(SqlSessionFactory)를 스프링의 빈으로 등록한다.

                org.mybatis.spring.SqlSessionFactoryBean">
                        
                        
                


        7. 매퍼 인터페이스를 스캔해서 매퍼 인스턴스를 생성해서 스프링의 빈으로 등록하는 
           MapperScannerConfigurere를 스프링의 빈으로 등록한다.

                org.mybatis.spring.mapper.MapperScannerConfigurer">
                        com.sample.mybatis.dao" />
                





mvc-context.xml



web.xml





mybatis 설정 파일을 만들경우
mybatis-config.xml

 




root-context.xml 에 설정을 해준다.





 

 

 

※. 기능 설정

employee.xml

 

 

employeeController