sqlsessiontemplate
sqlsessiontemplate은 mybatis-spring의 핵심입니다. 이 클래스는 Mybatis의 SQLSession을 관리하고 Mybatis의 SQL 메소드를 호출하며 예외를 번역 할 책임이 있습니다. sqlsessiontemplate은 스레드 안전이며 다중 DAO가 공유하고 사용할 수 있습니다.
SQL 메소드를 호출 할 때 Mapper getMapper () 메소드에서 반환 된 메소드가 포함됩니다. sqlsessiontemplate은 사용 된 SQLSESSION이 현재 스프링 트랜잭션과 관련이 있는지 확인합니다. 또한 필요한 마감, 커밋 또는 롤백 작업을 포함하여 세션의 수명주기를 관리합니다.
sqlsessiontemplate은 sqlsession을 구현하므로 mybatis의 sqlsession을 간단히 교체해야합니다.
SQLSESSIONTEMPLATE는 일반적으로 SPRING 트랜잭션에 참여할 수 없거나 스레드 정보이므로 주입 할 수 없기 때문에 기본 myBatis 구현을 대체하는 데 사용됩니다. 동일한 응용 프로그램에서 두 클래스 간의 변환은 데이터 일관성에 문제를 일으킬 수 있습니다.
sqlsessiontemplate 객체는 sqlsessionfactory를 매개 변수로 사용하여 메소드를 구성 할 수 있습니다.
<bean id = "sqlsession"> <생성자-arg index = "0"ref = "sqlsessionfactory"/> </bean>
이 콩은 이제 다오 콩에 직접 주입 될 수 있습니다. 다음 코드와 같이 SQLSession 속성을 Bean에 추가해야합니다.
공개 클래스 userDaoimpl은 userDao {private sqlsession sqlsession을 구현합니다. public void setsqlsession (sqlsession sqlsession) {this.sqlsession = sqlsession; } public user getUser (String userId) {return (user) sqlsession.selectone ( "org.mybatis.spring.sample.mapper.usermapper.getUser", userId); }}다음과 같이 sqlsessiontemplate를 주입하십시오.
<bean id = "userDao"> <property name = "sqlsession"ref = "sqlsession"/> </bean>
sqlsessiondaosupport
sqlsessiondaosupport는 sqlsession을 제공하는 데 사용되는 추상 지원 클래스입니다. getSqlSession () 메소드를 호출하면 SQLSESSIONTEMPLATE가 표시되면 SQL 메소드를 실행하는 데 사용할 수 있습니다.
공개 클래스 userDaoimpl은 sqlsessiondaoSupport를 확장합니다 userDao {public user getUser (string userId) {return (user) getSqlSession (). selectone ( "org.mybatis.spring.spample.mapper.usermapper.getUser", userId); }} 일반적으로 MapPerfactoryBean은 추가 코드가 필요하지 않기 때문에이 클래스의 첫 번째 선택입니다. 그러나 DAO에서 다른 비 마비 작업을 수행하거나 특정 수업이 필요한 경우이 수업이 유용합니다. SQLSESSIONDAOSUPPORT는 SQLSESSIONFACTORY 또는 SQLSESSIONTEMPLATE 속성을 설정해야합니다. 이들은 Spring에 의해 명시 적으로 설정되거나 자동 조립됩니다. 둘 다 설정되면 sqlsessionFactory는 무시됩니다.
클래스 usermapperimpl이 sqlsessiondaosupport의 서브 클래스라고 가정하면 스프링에서 다음과 같이 구성 할 수 있습니다.
<bean id = "usermapper"> <property name = "sqlsessionfactory"ref = "sqlsessionfactory"/> </bean>