spring注解声明式事务管理
1.在spring配置文件中创建事务管理器
再注入数据源
2.在配置文件中开启事务注解
3.在service类上面(或者service类里面方法上面)添加事务注解
1.@Transactional,这个注解添加到类上面,也可以添加方法上面
2.如果把这个注解添加类上面,这个类里面所有的方法都添加事务
3.如果把这个注解添加方法上面,为这个方法添加事务
事务操作
在service类上面添加注解@Transactional,在这个注解里面可以配置事务相关参数
propagation:事务传播行为
多事务方法直接进行调用 (事务方法:对数据库表数据进行变化的操作)
ioslation:事务隔离级别
事务有特性称为隔离性,多事务操作之间不会产生影响,不考虑隔离性会产生很多的问题:脏读,不可重复读,幻读
脏读:一个未提交事务读取到另一个未提交事务的数据
不可重复读:一个未提交事务读取到另一个提交事务的修改的数据
幻读:一个为提交事务读取到另一提交事务添加的数据
read uncommitted:出现脏读,幻读,不可重复度
read committed 不会出现脏读但会出现幻读和不可重复读
repeatable read 不会出现脏读和不可重复读但会出现幻读
serializable 不会出现问题
timeout:超时时间
1.事务需要在一定时间内进行提交,如果不提交需要进行回滚
2.默认值为-1,设置时间以秒单位进行计算
readOnly:是否只读
默认值:false,可以查询也可以修改删除操作
设置成ture,只能查询
rollbackfor:回滚
设置出现那些异常进行事务回滚
norollbackfor:不回滚
设置出现那些异常不进行事务回滚