美文网首页
JDBC 事务

JDBC 事务

作者: 指间Hrc | 来源:发表于2018-11-08 14:33 被阅读36次

MySQL 事务看这里:

MySQL事务

举个栗子:

表里两个账户,余额分别为 1000 块钱:

现在 Robin 准备给 Camilla 转 500 块钱,那么此时得同时更新两个账户的余额 balance。

转账成功,余额发生变化:

突然,Robin 在转账过程中出现意外情况(先初始化双方余额到 1000):

在这里抛出了异常,转账终止,再查询下余额:

这就违反了事务的一致性,所以应该对整个转账流程做事务的处理,才能保证事务的特性,当转账成功时,事务直接提交给 MySQL,而如果转账失败或者被中断,则回滚到最初的状态。

现在对 SQL 的操作方法都是重新获取一个连接,如果要做事务处理,得保证在同一个连接下,那么需要对方法做下修改:

Connection 由外部进行处理,并传参,这样可以保证在同一个连接做好事务处理:

事务的隔离级别:

还是看这里 MySQL事务

初始化表记录:

设置读取记录的隔离级别为 TRANSACTION_READ_UNCOMMITTED:

先查询下 Robin 的余额:

执行以下更新操作,然鹅并不提交事务:

执行成功,余额已变为 500,其实数据表的记录还是 1000,说明隔离级别起作用了。但是这样的结果是不想看到的,毕竟多个事务之间并发执行的话,会造成读取记录的各种问题,所以应该选择合适的隔离级别。其他隔离级别,各位看官可以试试。

最好的方式是在命令行里面去设置隔离级别,如果需要经常切换数据库,而且在数据库的隔离级别未知的情况下,在代码里面设置就很方便了,你觉得呢?

嘿嘿~

以上为本人的一些学习笔记,如有出错欢迎指正,陆续更新!!!

相关文章

  • JTA事务

    JDBC和JTA事务区别简单的说 jta是多库的事务 jdbc是单库的事务。 jdbc事务JDBC事务由Connn...

  • java事务

    1、java事务介绍 2、JDBC事务 3、JTA事务 1、java事务介绍 java事务分类:JDBC事务、...

  • JDBC

    JDBC JDBC控制事务:

  • JDBC

    JDBC原理: JDBC: 抽取JDBC工具类 : JDBCUtils JDBC控制事务:

  • Day05--JDBC

    JDBC: 抽取JDBC工具类:JDBCUtils JDBC控制事务

  • JDBC

    JDBC: 抽取JDBC工具类 : JDBCUtils JDBC控制事务:

  • 04 JDBC

    今日内容 JDBC: 抽取JDBC工具类 : JDBCUtils JDBC控制事务:

  • 5.JDBC

    主要内容 JDBC: 抽取JDBC工具类 : JDBCUtils JDBC控制事务:

  • JDBC 控制事务

    JDBC 控制事务

  • NO.52 JDBC高级编程、DAO

    一.JDBC中的事务管理 1.自动管理事务 JDBC会自动管理事务 每次调用executeUpdate()时,它会...

网友评论

      本文标题:JDBC 事务

      本文链接:https://www.haomeiwen.com/subject/gomixqtx.html