【框架整合】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提供。
-
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。