Mybatis-事务管理,事务配置

事务的特征–

1.原子性
事务是数据库的逻辑工作单位,事务中包括的所有操作,要么全做,要么全部做
2.一致性
事务执行的结果必须是使数据库从一个一致性状态飙到另一个一致性状态,一致性与原子性是密切相关
3.隔离性
一个事务的执行不能被其他事务干扰,既是事务与事务之间是互不干扰的
4.持续性/永久性
一个事务一旦提交,他对数据库的改变就应该是永久性的

1.开始干活,首先新建一个数据表Account

Mybatis-事务管理,事务配置_第1张图片

2.用自动生成包和代码的那个模板帮我们生成Account表对应的mapper文件

Mybatis-事务管理,事务配置_第2张图片

3.创建AccountDao,在里面编写这个数据增减的操作,首先查询主键为对应数字的对象命名为xq/bz,然后进行数值加减数值加减完以后放回bz对象里面,然后再更新到数据库。利用subtract()进行减,add()进行增加

Mybatis-事务管理,事务配置_第3张图片
然后再创建一个text类来测试
Mybatis-事务管理,事务配置_第4张图片
然后发现Junit运行出错,第一个错误是我的AccountMapper.xml文件里面没有修改好第二个错误是Mybatis-事务管理,事务配置_第5张图片
也就是找不到我的Dao

分析一波,首先测试类中是通过spring-mybatis.xml容器来找到我们的dao,所以我们要在前面那个AccountDao.java中加上注解,让容器获得我们的Dao,在类上加上注解@Component
在属性上添加注解@Autowired

Mybatis-事务管理,事务配置_第6张图片4.最后查看数据库,数据发生了变化证明成功了

5.把事务管理的内容都加到spring-mybatis.xml文件中去


	
		
	

	
		
			
			
			
			
		
	
	
	
	
		
		
	

Mybatis-事务管理,事务配置_第7张图片
如果有报错的话那么就在xml文件下面的那个
Mybatis-事务管理,事务配置_第8张图片
Mybatis-事务管理,事务配置_第9张图片
也就是在哪个包里面生效

我们以后编写的业务逻辑的代码都放到service层里面

6.创建service层的包,创建service类

Mybatis-事务管理,事务配置_第10张图片

7.将dao层的包名改为service.impl,且将里面的dao类名都改为service,然后实现service接口

Mybatis-事务管理,事务配置_第11张图片
Mybatis-事务管理,事务配置_第12张图片
编写测试类
Mybatis-事务管理,事务配置_第13张图片
给AccountService接口添加上zhuangzhang这个方法
Mybatis-事务管理,事务配置_第14张图片
修改spring-mybatis.xml中改为Service层的包名
Mybatis-事务管理,事务配置_第15张图片
在上面没有zhuanzhang这个方法,所以事务不生效,解决方法有两种
1)在上面配多一个zhuanzhang的方法提交到事务
在这里插入图片描述
2)第二种就是将方法名改为上面所拥有的那些方法名作为前缀
在这里插入图片描述

你可能感兴趣的:(Mybatis-事务管理,事务配置)