1.事物是一组操作数据的集合动作

(场景:再开发的时候相信大家都遇到主表和子表的插入问题,当主表插入成功时,子表没有插入成功,这时候我们就要把主表的数据回滚,这个时候我们就要用到事物了)

2.一组处理的步骤或者全部发生或者一步也不执行,我们称该组处理的步骤为一个事物,当所有的步骤操作像一个操作一样完整的执行,我们称该事物被提交。由于其中的一部分或者多步执行失败,导致没有步骤被提交,则事物必须回滚到系统的最初的状态。

Java中的事务处理

  一般J2EE服务器支持三种类型的事务管理。即:JDBC事务,JTA事务,容器管理事务。

  最好不要在程序中同时使用上述三种事务类型;并且,事务要在尽可能短的时间内完成,不要在不同方法中实现事务的使用。下面举两个例子说明JDBC及JTA事务,容器管理事务是在特定的框架中实现的(如:Spring的事务管理)

1. JDBC事务

  public String delete(String id) {
    String ID = id;
    db = new getConnection();
    Connection con = db.getConnection();
    try {
      con.setAutoCommit(false);
      db.executeUpdate("delete from helloworld where ID=" + ID); //更新操作1
      db.executeUpdate("delete from helloworld _book where ID=" + ID); //更新操作2
          db.executeUpdate("delete from helloworld_user where ID=" + ID); //更新操作3
          con.commit();//提交JDBC事务
          con.setAutoCommit(true); 
              db.close();
          return “success”;
       }catch (Exception e) {
      con.rollBack();//回滚JDBC事务
      e.printStackTrace();
      db.close();
      return “fail”;
    }
  }

  如上例:更新操作1,2,3只有当三步操作都成功完成才进行提交,否则回滚已经进行的操作。这样,保证了数据的完整性,不会因为突然断电等特殊情况导致的数据错误。

  2.SpringBOOt处理事物,利用注解@Transactional

A.在ServiceImp 层中对要用到的事物加上@Transactional   注解即可

B.在SpringBOOT启动类中添加注解 @EnableTransactionManagement

最新文章

  1. 数独 JAVA实现
  2. iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
  3. windows下react-native android打包笔记
  4. Atitit   图像处理 平滑 也称 模糊, 归一化块滤波、高斯滤波、中值滤波、双边滤波)
  5. 项目总结笔记系列 Maven Session1
  6. HD1269迷宫城堡(有向图 && 划分连通块)
  7. DP:Cow Exhibition(POJ 2184)(二维问题转01背包)
  8. IT人的自我导向型学习:开篇杂谈
  9. ArcGis 中MapControl 框选
  10. git branch -D 大写的D 删除分支
  11. Html5元素及基本语法
  12. TCP/IP,HTTP,Socket的区别与联系
  13. mysql系统表加trigger和对特定的库禁用 DDL 语句
  14. AppDelegate 、UIApplication 的用法
  15. 使用自定义的BaseAdapter实现LIstView的展示
  16. MySQLBackup 使用说明
  17. Hack 语言学习/参考---1.2 Hack Background
  18. Android注解使用之Dagger2实现项目依赖关系解耦
  19. js系列教程2-对象、构造函数、对象属性全解
  20. Git——如何将本地项目提交至远程仓库(第一次)

热门文章

  1. 数据挖掘算法学习(八)Adaboost算法
  2. DIV+CSS在不同浏览器中的表现
  3. go语言笔记——包的概念本质上和java是一样的,通过大小写来区分private,fmt的Printf不就是嘛!
  4. 【POJ 1995】 Raising Modulo Numbers
  5. 5.3QBXT模拟赛
  6. linux 防火墙关闭
  7. JavaScript--输出内容(document.write)
  8. 题解报告:hdu 2149 Public Sale(巴什博弈)
  9. [ NOIP 2009 ] TG
  10. 《Java编程的逻辑》第二部分 面向对象