spring 本地数据库事务 学习笔记

spring 本地数据库事务 学习笔记


事务的传播属性(7种)



1. nested(禁用)

    作用:嵌套关系,外层抛异常,外层回滚,里层也回滚;里层回滚,外层没关系
    注意:禁用此事务属性,是无法掌握事务回滚时,要调用的savePoint

2. required (默认属性)

    spring事务的默认设置,如果当前有事务存在就融入当前事务。如果没有则新建一个事务

3. requires_new

    事务存在就挂起当前事务,新建一个事务(spring 在这里的处理的方式是新建一个连接,然后执行数据库操作)

4. supports ()

    如果当前事务存在,就用当前事物去执行数据库操作;如果不存在,不执行数据库操作,不使用事务;

5. mandatory ()

    当前事务不存在就抛出异常

6. non_supported ()

    当前有事务,就suspend挂起当前的事务;自己不使用事务去执行数据库操作

7. never ()

    当前存在事务,就抛异常;

数据库事务

    1. 事务在没提交的时候,写入的是一个临时内存表,事务在提交的时候,由内存表写入物理磁盘
    2. 至于事务提交是否及时写回磁盘,只要事务提交后,数据库正确返回,是一定写回磁盘的

在service层操作事务案例

    1. 注入DAO层
    @Autowired
    private InsertDao insertDao;
    2. 创建事务
    @transactional
    public void insertTable(string name){
        insertDao.insert(name);
    }

事务流程

    1. create a new transaction
    2. connect jdbc 
    3. set manul commit
    4. commit tansaction
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值