본문 바로가기
Framework/Spring Framework

[Spring][iBatis] iBatis를 스프링에 세팅할 때 ‘SqlMapClientTemplate’ 클래스를 얻어오기 위한 라이브러리로 쓸 수 있는 2가지 라이브러리

by gf0308 2022. 3. 18.

— ‘spring-orm’ (3.2.18.RELEASE 까지)

— ‘spring-ibatis’ (2.0.8)

두 가지가 있다.

 

SqlMapClientTemplate 클래스

스프링 환경에서 ibatis를 데이터베이스 접근기술로 하여 데이터 처리를 한다면 SqlMapClientFactoryBean, SqlMapClientTemplate를 이용하게 된다.

  • SqlMapClientFactoryBean (org.springframework.orm.ibatis.SqlMapClientFactoryBean) : dataSource와 config정보를 투입해 해당 객체를 생성
  • SqlMapClientTemplate (org.springframework.orm.ibatis.SqlMapClientTemplate) : SqlMapClientFactoryBean객체를 투입해 해당 객체를 생성

 

 

이렇게 만들어진 SqlMapClientTemplate 인스턴스로 (ex: sqlMapClientTemplate)

  • sqlMapClientTemplate.queryForObject();
  • sqlMapClientTemplate.queryForList();

식으로 데이터를 조회하고 처리한다.

따라서 SqlMapClientFactoryBean, SqlMapClientTemplate 두 클래스가 반드시 있어야 ibatis를 이용할 수가 있다.

 

SqlMapClientTemplate 클래스를 제공하는 2가지 라이브러리

  • spring-orm’ 라이브러리
  • spring-ibatis’ 라이브러리

두 라이브러리 모두

  • SqlMapClientFactoryBean (org.springframework.orm.ibatis.SqlMapClientFactoryBean)
  • SqlMapClientTemplate (org.springframework.orm.ibatis.SqlMapClientTemplate)

클래스들을 제공하고 있다.

 

‘spring-orm’ 라이브러리에서의 유의할 점과 해결법

spring-orm 라이브러리는 3.2.18.RELEASE 버전까지 (3 버전 대의 마지막 버전)는 ibatis를 지원했다.

근데 이후 spring-orm 4.0.0.RELEASE부터는 ibatis를 더 이상 지원하지 않고 있다.

 

spring-orm 3.2.18 버전

spring-orm 4.0.0.RELEASE 버전

따라서 ibatis를 쓸 때 ‘spring-orm’ 라이브러리로 계속 이용하려면 최대 3.2.18.RELEASE 이내를 유지해야 한다.

만약 다른 라이브러리를 쓴다고 하면 ‘spring-ibatis 2.0.8 버전’(2008년 1월 출시; 훨씬 더 오래됨) 이 있다.

<!-- https://mvnrepository.com/artifact/org.springframework/spring-ibatis -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-ibatis</artifactId>
    <version>2.0.8</version>
</dependency>