跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请问下老哥们,使用 Threadlocal 来管理事务,执行回滚后数据仍发生改变,该怎么解决?
未分類
9 1 月 2021

请问下老哥们,使用 Threadlocal 来管理事务,执行回滚后数据仍发生改变,该怎么解决?

请问下老哥们,使用 Threadlocal 来管理事务,执行回滚后数据仍发生改变,该怎么解决?

資深大佬 : PhilFreecess 4

     /**      * 开启事务      */     public void beginTransaction() {         try {             connectionUtils.getThreadConnection().setAutoCommit(false);         } catch (Exception e) {             e.printStackTrace();         }     }    public void transfer(String sourceName, String targetName, Float money) {          try {             //开启事务             transactionManager.beginTransaction();              //执行操作             //根据名称分别查询到转入转出的账户             Account source = accountDao.findAccountByName(sourceName);             Account target = accountDao.findAccountByName(targetName);              //转入转出账户加减             source.setBalance(source.getBalance() - money);             target.setBalance(target.getBalance() + money);              //更新转出转入账户             accountDao.updateAccount(source);             //模拟转账异常             int num = 100 / 0;             accountDao.updateAccount(target);              //提交事务             transactionManager.commit();          } catch (Exception e) {             //回滚操作             transactionManager.rollback();             e.printStackTrace();         } finally {             //释放连接             transactionManager.release();         }     } 

跟着博客敲的代码,实现了转账的功能,抛出异常后调用了回滚方法,但是异常之前提交修改的数据仍然发生了改变,数据库引擎为 innodb,请问下怎么解决? https://i.imgur.com/tNorCDi.png https://i.imgur.com/NLeb1Wk.png https://i.imgur.com/7ia1Ntx.png

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具