Spring에서 ORM을 쉽게 사용할 수 있도록 제공하는 lib
SqlSessionFactory
생성SqlSession
Interface를 구현, Thread에 안전SqlSessionFactoryBean과 SQLSessionTemplate 는 MyBatis Spring에서 제공하는 컴포넌트
<!-- myBatis의 주요 컴포넌트 SqlSessionFactory 생성,
Spring application context 안에서 MyBatis SqlSessionFactory 공유-->
<beans:bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource" />
<beans:property name="mapperLocations" value="classpath:mapper/*Mapper.xml" /><!-- Mapper.xml 로끝나는 mapper모두 등록 -->
<!-- -->
<beans:property name="typeAliasesPackage" value="web.mvc.dto" /><!-- dto폴더안에있는 클래스들 별칭 자동만듦 - 클래스명의 첫글만 소문자!! -->
<!-- <beans:property name="configLocation" value="classpath:SqlMapConfig.xml"/> -->
</beans:bean>
<!-- SqlSessions 생성을 위해서는 SqlSessionFactory가 필요하기 때문에 생성자로 넘겨주어야한다. -->
<beans:bean id="sqlSession"
class="org.mybatis.spring.SqlSessionTemplate">
<beans:constructor-arg index="0" ref="sqlSessionFactory"/>
</beans:bean>
Spring Bean 설정파일 (beans.xml)
: SqlSessionFactoryBean을 bean으로 등록할 때,
DataSource 정보와 MyBatis Config 파일 정보, Mapping 파일 정보를 함께 설정한다.
: SQLSessionTemplate을 bean으로 등록.
Mapping 파일(~.xml)
: SQL문과 Mapping 설정
Tip) mapper.xml 자주 사용하는 Sql문 생성 후 include
태그를 통해 재사용 하는 방법
<mapper namespace="productMapper">
<!--sql문 id 설정-->
<sql id="selectSql">
select code, name, price, detail
from productlist
</sql>
<!--전체 검색-->
<select id="selectAll" resultType="productDTO">
<include refid="selectSql"/> <!--생성해놓은 sql문 사용하기-->
</select>
</mapper>
pom.xml > Dependencies