事务

事务:工作方式,作用范围。 什么情况下该用事务,什么情况下可以不用。

先要知道什么是事务?

事务是一系列操作组成的工作单元。具有不可分割性。

传播行为:传播行为定义了事务应用于方法上之边界,它告知何时开始一个新的事务,或何时事务该被暂停。或方法是否要在事物中进行。所以根据这个定义,可以知道事务的工作范围。

对事务的工作方式我是这样理解的,将业务中所有的sql语句都一起执行,正确则执行成功,否则就rollback。根据:

Try(

  ...

connection.setAutoCommit(false);

.....

//一连串sql操作

Connection.commit();

)catch(SQLException){

//发生错误,撤销所有变更

Connection.rollback();

}

这个是在Jdbc。操作ConnectionsetAutoCommit()方法,给定false参数,在下达一连串sql语句后,自动执行Connectioncommit()来送出变更,如果中间发生错误,则执行rollback()来撤销所有的执行。

对于什么情况下该用事务,什么情况下可以不用这个问题。

那就是如果执行的是一条sql语句,如果错误则报错,而上面是多条sql语句在一起执行,如果一条有问题,那么就回滚。所以在只有一条sql语句的时候不用,而多条就得用。刚才试了一下,证明了此猜测,我将OpenSessionInViewFilter@Transactional都注解掉了,结果删除一条数据(只用了一条sql语句)成功了。再然后我需要在事务中进行两个操作。将@Transactional注解了,就失败了。

接下来,深入理解事物属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值