1. 程式人生 > >【框架整合】spring 和mybatis整合&&整合後mybatis原始dao開發

【框架整合】spring 和mybatis整合&&整合後mybatis原始dao開發

整合思路

需要spring通過單例方式管理SqlSessionFactory。

spring和mybatis整合生成代理物件,使用SqlSessionFactory建立SqlSession。(spring和mybatis整合自動完成)

持久層的mapper都需要由spring進行管理。

整合環境

jar包:

mybatis3.2.7的jar包

spring3.2.0的jar包

mybatis和spring的整合包:早期ibatis和spring整合是由spring官方提供,mybatis和spring整合由mybatis提供。

  1. sqlSessionFactory

在applicationContext.xml配置sqlSessionFactory和資料來源

找到jar包中sqlSessionFactory所在的類 , 在mybatis和spring的整合包下--:--org.mybatis.spring.SqlSessionFactoryBean

<!-- 載入配置檔案 -->

   <context:property-placeholder location="classpath:db.properties" />

   <!-- 資料來源,使用dbcp -->

   <bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource"  destroy-method="close">

      <property name="driverClassName" value="${jdbc.driver}" />

      <property name="url" value="${jdbc.url}" />

      <property name="username" value="${jdbc.username}" />

      <property name="password"

value="${jdbc.password}" />

      <property name="maxActive" value="10" />

      <property name="maxIdle" value="5" />

   </bean>

   <!-- sqlSessinFactory -->

   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

      <!-- sqlSessionFacotry需要載入 mybatis的配置檔案 -->

      <property name="configLocation" value="mybatis/SqlMapConfig.xml" />

      <!-- 資料來源 -->

      <property name="dataSource" ref="dataSource" />

   </bean>

原始dao開發(和spring整合後)

1、User.xml

在SqlMapconfig.xml中載入User.xml

	<!-- 載入對映檔案 -->
	<mappers>
		<mapper resource="sqlmap/User.xml"/>
		<package name="com.mybatis.mapper" />
	</mappers>

2、dao(實現類繼承SqlSessionDaoSupport)

原因:SqlSessionDaoSupport中定義了SqlSesionFactory屬性,通過setSqlSesionFactory方法注入到IOC容器

dao介面實現類需要注入SqlSessoinFactory,通過spring進行注入。

這裡spring宣告配置方式,配置dao的bean:

UserDaoImpl實現類繼承SqlSessionDaoSupport

3、配置dao

在applicationContext.xml中配置dao。

4、測試程式