(狂神)Spring笔记---------07

整合Mybatis方式二:

步骤:

(1)对应数据库的实体类:

(2)方法的接口:

(3)实现接口中方法的Mapper.xml文件:

 

(4)mybatis配置文件(只写别名和设置)

(5) spring配置文件(spring数据源  sqlSessionFactory 绑定mybatis配置文件 此种方式不需要写

SqlSessionTemplate)

这种方式在配置文件时,节省了一步配置。

(6) SqlSessionDaoSupport 中间类 实现功能:

(7)整合mybatis和spring的最终xml文件:

(8)测试类:

 这种方式我们的中间类也变得比较简单了。

测试结果:

 13. 声明式事务

1.回顾事务

把一组业务当成一个业务来做,要么都成功,要么都失败!
事务在项目开发中,十分重要,涉及到数据的一致性问题,不能马虎!

确保完整性和一致性;

事务的ACID原则:

原子性

一致性

隔离性 (多个业务可能操作同一个资源,防止数据损坏)

持久性(事务一旦提交,无论系统发生什么问题,结果都不会再被影响,被持久化的写到存储器中!)

2.我们现在不加spring事务会遇到的问题:

原数据库表:

 

我们重新来整个一个新的mybatis-spring项目:

(1)实体类:

 

(2)接口:

 (3)实现接口中方法的xml文件:

(4)mybatis配置文件(只写别名和设置):

(5) 

spring配置文件(spring数据源  sqlSessionFactory 绑定mybatis配置文件 此种方式不需要写

SqlSessionTemplate):

 

(6) SqlSessionDaoSupport 中间类 实现功能:

 

(7) 整合mybatis和spring的最终xml文件:

 (8)测试类:

 但是我们这个项目,在整合的第三步时,Mapper.xml中的删除方法,sql代码写错了:

 delete写成了deletes,很显然,我们测试的结果一定是会报错的:

但是不符合常理的是,我们去刷新我们的数据库:

 

删除不好使,添加竟然添加进数据库了,但是增删查我们是在一个方法里调用的,这显然不符合我们所希望看到的。所以就要引入spring最后的一个内容:spring中的事务。

 2.Spring中的事务管理

声明式事务:AOP

编程式事务:需要在代码中,进行事务的管理

我们先恢复到原来的数据库表:

我们只需要在spring-dao (spring配置文件)里配置上事务就可以了:

 

基本上是死的写法,应用时只需修改就好。

 我们再去测试:

 查看数据库:

 我们发现数据库和我们预想的一样。

思考:

为什么需要事务?

如果不配置事务,可能存在数据提交不一致的情况下;

如果我们不在spring中去配置声明式事务,我们就需要在代码中手动配置事务!

事务在项目的开发中十分重要,涉及到数据的一致性和完整性问题,不容马虎!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值