zoukankan      html  css  js  c++  java
  • JAVA中对事物的理解

    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

    周永发
  • 相关阅读:
    写代码的自动提示是怎么出来的...我的WebStorm中不能自动提示Bootstrap中的样式呢
    bootstrap 中是通过写less文件来生成css文件,用什么工具来编写呢?
    flexbox弹性盒模型
    oninput 属性
    操作文件
    深拷贝、浅拷贝、集合
    常用字符串方法
    字典-小练习
    字典
    元组
  • 原文地址:https://www.cnblogs.com/yvanBk/p/10008809.html
Copyright © 2011-2022 走看看