大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 MyBatis事務回滾例子

MyBatis事務回滾例子

更新時間:2022-03-23 10:10:32 來源:動力節點 瀏覽2456次

mybatis批量操作中,插入多條數據時,設置回滾,但是之前的幾條還是插入的。嘗試后

問題是:

官網api上的openSession(false)可以回滾,但是用session查看還是可以的。獲取連接()。獲取自動提交 ()

解決方案:

將 DataSource 配置更改為 AutoCommit (false)

設置setAutoCommit(false)為conn,用conn提交和回滾

例子:

SqlSession session = sqlSessionFactory.openSession(false);
  Connection conn = session.getConnection();
  conn.setAutoCommit(false);
  try {
   UserMapper mapper = session.getMapper(UserMapper.class);
   for (String name : names) {
     // Various operations 
    User user = new User();
    user.setName(name);
    // Insert, require rollback 
    mapper.insert(user);
   }
   conn.commit();
  } catch (Exception e) {
   // There are repeated rollbacks 
   conn.rollback();
   throw e;
  } finally {
   session.close();
  }

補充:Spring Boot + Mybatis Plus 手動觸發事務回滾

使用第一種方法(省略數據庫操作的代碼)操作Mybatis Plus的事務,如果有異常進入catch,數據庫操作不會回滾,但是會報No transaction aspect-managed TransactionStatus in scope的錯誤改為報告。修改為第二種方法可以正常管理和回滾事務

請參閱此情況的說明:

@Transactional必須觸發aop代理才能生效,所以非公有方法不執行事務,而公有方法在該類中被引用不執行事務

方法一:

@PostMapping("/save1")
public boolean action01() {
 return action00(); 
}
@PostMapping("/save2")
public boolean action02() {
 return action00(); 
}
@Transactional
private boolean action00() {
 String result = true;
 try {
  System.out.println(1/0);
 } catch (Exception e) {
  TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  result = false;
 }
 return result;
}

方法二:

@PostMapping("/save1")
@Transactional
public boolean action01() {
 boolean result = action00();
 if (!result){
  TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 }
 return result; 
} 
@PostMapping("/save2")
@Transactional
public boolean action02() {
 boolean result = action00();
 if (!result){
  TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
 }
 return result; 
}  
private boolean action00() {
 String result = true;
 try {
  System.out.println(1/0);
 } catch (Exception e) {
  result = false;
 }
 return result;
}

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲美女精品视频 | 亚洲免费中文字幕 | 国产主播专区 | 国产精品视频一区二区三区 | 免费香蕉一区二区在线观看 | 一本大道高清香蕉中文大在线 | 久久精品影院一区二区三区 | 精品久久久久久无码中文字幕 | 99热这里只有精品免费国产 | 欧美成人另类bbw | 国产a久久精品一区二区三区 | 欧美一级片免费看 | 欧美精品亚洲精品日韩经典 | 日韩色综合| 高清不卡免费一区二区三区 | 99久久精品国产综合男同 | 亚洲欧美日本另类 | 欧美兽皇video | 成人小视频在线观看 | 99国产精品视频久久久久 | 国产特级毛片aaaaaaa高清 | 久久精品三级 | 久久97精品久久久久久久看片 | 日日夜夜摸摸 | 亚洲精品久久精品h成人 | 99精品国产成人一区二区在线 | 亚洲欧美另类日韩 | 天天久久狠狠伊人第一麻豆 | 国产 欧美 日产久久 | 亚洲欧美日韩精品高清 | 久久国产亚洲高清观看5388 | 97成人免费视频 | 久久国产精品网 | 夜夜躁日日躁狠狠 | 前任4在线观看 | 四虎影视永久地址www成人 | 久久婷婷是五月综合色狠狠 | 国产精品一久久香蕉产线看 | 日日摸夜夜添夜夜添影院视频 | 欧美在线一 | 中文字幕一区二区在线观看 |