对JAVA的事务@Transactional的检验

一、首先事务的概念:保证一组操作要么全部都成功,要么全部都失败。

二、在本文章中对事务的概念进行简单的检验。

校验思路:

1.准备在数据库中两张表Employee和Department

2.在一个方法中对两张表进行插入数据

3.人为制造异常来模拟运行的时候产生的异常。

4.查看两张表插入数据的结果

验证开始:

1.代码执行的正常情况:

两张表插入数据成功

 2.程序运行不正常情况:

人为制造异常:

运行结果报异常:

表结果:department表插入了id为99的新数据,而employee表没有插入新数据(说明id为375的数据是上次正常插入的结果)

 这个时候就出现了一组操作(向employee表和department表插入数据)不一致的情况。我们预期的是两张表都要插入或者两张表都插入失败这时就要使用到事务来保证一组操作要么都成功要么都失败。

3.使用@Transactional注解产生异常的情况

运行结果:出现了异常

表插入的结果 :两张表都没有插入新的数据

4.使用@Transactional注解程序正常的情况下,与1.代码执行的正常情况一致,即两张表都会插入数据就不演示了。

注:当使用@Transactional注解发生了异常的情况下,但是我们把异常进行try-catch捕获异常而不抛出时事务会失效,还有其他导致事务失效的情况可以自行百度。

运行结果:捕获到异常

 

表结果:deparment表插入了id为101的新数据,而employee表没有插入新数据

 此时事务失效,是因为方法将异常捕获后,事务以为方法没有出现异常认为方法成功执行。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值