该学习笔记是《尚学堂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进行管理了。