该学习笔记是《尚学堂spring视频教程》的学习笔记第四部分。
17、Spring整合MyBatis
1、步骤:导入相关jar包、编写配置文件、实现。
在UserDaoImpl.java中:
现在Spring完成了sqlSession创建,无需自己创建。
没有整合的时候,需要将dataSource配置在mybatis-config.xml
中。在bean.xml
中配置数据源dataSource
、sqlSessionFactory
。
如果需要进行注入,那么UserDaoImpl需要提供set方法或者构造函数。
其中,
sqlSessionFactory
引用了datasource。配置文件中,UserDao并非直接引用sqlSessionFactory,而是先引用sqlSessionTemplate。而sqlSessionTemplate还需要通过
<constructor-arg>
标签来和sqlSessionFactory建立联系。虽然看起来很复杂,但是现在只需要写一次。
在测试类中现在通过上述方法已经可以获取到userDao对象。在user.mapper.xml文件中:
在userDao文件中:
现在通过Spring而非MyBatis来创建数据库连接(也就是创建dataSource
对象)。
18、声明式事务管理
假如mapper.xml文件如下,并且delete方法中SQL语句出现错误。
UserDaoImple文件如下。
测试类如下:
这里成功添加,但是删除失败。不符合事务管理。要进行事务管理,在Spring中首先需要导入:
xmlns:tx="http://www.springframework.org/schema/tx"
然后需要配置事务管理器以及事务通知。
还需要配置aop:
<aop:config>
<aop:pointcut expression="execution(* cn.sxt.service.dao.impl.*.*(..))" id="pointcut"/>
<aop:adviser advice-ref="txAdvice" pointcut-ref="pointcut"/>
</aop:config>
这样子事务就交给Spring进行管理了。