??該學(xué)習(xí)筆記是《尚學(xué)堂spring視頻教程》的學(xué)習(xí)筆記第四部分免都。
17、Spring整合MyBatis
1荷并、步驟:導(dǎo)入相關(guān)jar包、編寫配置文件青扔、實現(xiàn)源织。
在UserDaoImpl.java中:
??現(xiàn)在Spring完成了sqlSession創(chuàng)建,無需自己創(chuàng)建微猖。
沒有整合的時候谈息,需要將dataSource配置在mybatis-config.xml
中。在bean.xml
中配置數(shù)據(jù)源dataSource
凛剥、sqlSessionFactory
侠仇。
??如果需要進行注入,那么UserDaoImpl需要提供set方法或者構(gòu)造函數(shù)犁珠。
??其中逻炊,
sqlSessionFactory
引用了datasource。??配置文件中犁享,UserDao并非直接引用sqlSessionFactory余素,而是先引用sqlSessionTemplate。而sqlSessionTemplate還需要通過
<constructor-arg>
標(biāo)簽來和sqlSessionFactory建立聯(lián)系炊昆。雖然看起來很復(fù)雜桨吊,但是現(xiàn)在只需要寫一次。
??在測試類中現(xiàn)在通過上述方法已經(jīng)可以獲取到userDao對象窑眯。在user.mapper.xml文件中:
在userDao文件中:
??現(xiàn)在通過Spring而非MyBatis來創(chuàng)建數(shù)據(jù)庫連接(也就是創(chuàng)建dataSource
對象)屏积。
18、聲明式事務(wù)管理
??假如mapper.xml文件如下磅甩,并且delete方法中SQL語句出現(xiàn)錯誤炊林。
UserDaoImple文件如下。
測試類如下:
??這里成功添加卷要,但是刪除失敗渣聚。不符合事務(wù)管理。要進行事務(wù)管理僧叉,在Spring中首先需要導(dǎo)入:
xmlns:tx="http://www.springframework.org/schema/tx"
??然后需要配置事務(wù)管理器以及事務(wù)通知奕枝。
??還需要配置aop:
<aop:config>
<aop:pointcut expression="execution(* cn.sxt.service.dao.impl.*.*(..))" id="pointcut"/>
<aop:adviser advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
??這樣子事務(wù)就交給Spring進行管理了。