jdbc中的事务入门

1.为什么需要事务?
在一些业务中没有事务是一件非常可怕的事情, 比如在转账业务中如果没有事务可能造成资金转出去但是对方未收到的情况. 数据的一致性无法得到保证
2.事务是什么?
    事务具有ACID属性, 保证了一端代码要么不执行, 执行的话就要值行完毕, 不会出现执行一半去执行其他程序的情况,正如转账过程中我方向对方转账,只有在对方账户收到资金时这个事物才算结束.
    >ACID属性
    [1] A (atomicity) 原子性: 指事务是一个不可分割是工作单位, 要么不执行要么就执行完毕
    [2] C (consistency) 一致性: 事务使数据从一种状态转换成另一种状态, 转换前后数据整体上不变
    [3] I (isolation) 隔离性: 一个事务执行是不受其他事务影响
    [4] D (durability) 持久性: 事务一旦体检对数据库的改变是永久性的
3.如何使用事务?
    [1] 将事务由自动设置为手动 connection.setAutoCommit(false) 即将自动模式设置为false
        原因: MySQL  innodb 数据库会自动设置和提交事务, 但是仅限于单个语句, 因此如果想将多个不同语句整合成事务, 就需要手动设置事务
    [2] 但事务结束时提交事务 connection.commit() 
      只有提交事务之后事务中的代码才会被执行, 类似于惰性操作
    [3] 事务回滚 connection.rollback() 改代码存在于catch中, 确保异常产生时能使事务回到初始状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值