標籤:

Mybatis8:Mybatis與Spring的整合

整合思路:

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

spring和mybatis整合生成代理對象,使用SqlSessionFactory創建SqlSession。(spring和mybatis整合自動完成)

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

導入ssm框架相關jar包

SqlSessionFactory配置

在applicationContext.xml配置sqlSessionFactory和數據源

sqlSessionFactory在mybatis和spring的整合包下。

<!-- 載入配置文件 --><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"><!-- 載入mybatis的配置文件 --><property name="configLocation" value="mybatis/SqlMapConfig.xml" /><!-- 數據源 --><property name="dataSource" ref="dataSource" /></bean>

---------------------------------------------------------------------------------------------------------------------------

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

前面步驟沒有變化

在SqlMapconfig.xml中載入User.xml

創建介面

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

這裡spring聲明配置方式,配置dao的bean:

讓UserDaoImpl實現類繼承SqlSessionDaoSupport

(繼承SqlSessionDaoSupport就可以直接調用this.getSqlSession()方法,而不需要在類中定義變數SqlSessionFactory 然後通過spring注入,然後再通過sqlSessionFactory.openSession()方法獲取sqlSession)

配置dao,class="cn.itcast.ssm.dao.UserDaoImpl"

在applicationContext.xml中配置dao。

測試代碼:

---------------------------------------------------------------------------------------------------------------------------

mapper代理開發

1.創建mapper.xml和mapper.java

2.通過MapperFactoryBean創建代理對象

此方法問題:

需要針對每個mapper進行配置,麻煩。

3. 通過MapperScannerConfigurer進行mapper掃描(建議使用)

4.測試代碼:


推薦閱讀:

如何在mybatis中調試查看生成的sql語句?
Mybatis5:resultMap與resultType總結
Mybatis1:基礎
Mybatis9:Mybatis與Hibernate區別

TAG:MyBatis |