• 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

    周永发
  • 相关阅读:
    Halcon学习(车牌识别)
    Keil新建STM32工程(LED灯)
    Keil新建STM32工程(LED灯)
    Keil STM32F4xx_DFP.1.0.8.pack下载链接
    android 如何单独编译 img及作用
    Linux绑定硬件IRQ到指定SOC的CPU核
    sysrq: SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f)
    内核线程同步之completion
    kmalloc,vmalloc , malloc
    ARMv8 与 Linux的新手笔记(转载)
  • 原文地址:https://www.cnblogs.com/yvanBk/p/10008809.html
Copyright © 2020-2023  润新知