当前位置:   article > 正文

springboot 数据库操作事务提交回滚实现不同方式_springboot中sql回滚

springboot中sql回滚

1:使用@Transactional注解方式实现

*测试在@Test测试环境不可使用会直接回滚  原因暂未剖析

*该注解可直接表明在方法 类 接口上  不建议接口方式会失效

2:使用原生连接实现数据库事务管理  支持测试环境

  1. @Test
  2. public void update() {
  3. Connection conn = null;
  4. Statement ps = null;
  5. Statement ps2 = null;
  6. String sql1 = "update user set last_name = 'sadggg' where id = 1";
  7. String sql2 = "update user set last_name = 'dfefgdsgnaskjfhjkf' where id = 2";
  8. try {
  9. conn = DBUtil.getConnection();
  10. conn.setAutoCommit(false);
  11. //编译第一条sql
  12. ps = conn.createStatement();
  13. ps.executeUpdate(sql1);
  14. //编译执行第二条sql这里可以使用插入一条异常语句或业务逻辑 我使用的是将sql超过列设置长度模拟执行失败
  15. ps2 = conn.createStatement();
  16. ps2.executeUpdate(sql2);
  17. conn.commit();
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. try {
  21. conn.rollback();
  22. } catch (SQLException throwables) {
  23. throwables.printStackTrace();
  24. }
  25. } finally {
  26. try {
  27. conn.setAutoCommit(true);
  28. } catch (SQLException e) {
  29. e.printStackTrace();
  30. }finally {
  31. DBUtil.closeResource(conn, ps);
  32. }
  33. }
  34. System.out.println("执行完毕");
  35. }

3:使用management  暂未实现后续补充其他方式

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/995381
推荐阅读
相关标签
  

闽ICP备14008679号