zoukankan      html  css  js  c++  java
  • dljd_027_增改删在同一个事务中的默认执行顺序

    一、测试增删改在同一个事务中的默认执行顺序示例

    package edu.aeon.test;
    
    
    import org.hibernate.Session;
    import org.hibernate.Transaction;
    
    import edu.aeon.aeonutils.GetSessionUtil;
    import edu.aeon.beans.Student;
    /**
     * [说明]:测试增删改在同一事务环境下的默认执行顺序
     * 测试结果:默认执行顺序为:增加C、更新(U)、删除(D)
     * @author aeon
     *
     */
    public class TestCRUD {
        public static void testCUD(/*Student student*/){
            Transaction transaction=null;
            try {
                Session session = GetSessionUtil.getSession();
                transaction = session.getTransaction();
                /**开启事务*/
                transaction.begin();
                /**一、执行删除操作(将stuid为1的学生删除)*/
                Student student1 =session.get(Student.class,1);
                session.delete(student1);
                /**二、执行更新操作(将stuid为2的用户的姓名改为:aeon)*/
                Student student2=session.get(Student.class, 2);
                student2.setStuName("aeon");
                session.update(student2);
                /**三、执行插入操作(插入一条用户名为:tuling、年龄为:30)*/
                Student student3=new Student("tuling",30);
                session.save(student3);
                transaction.commit();
                System.out.println("操作成功!");
            } catch (Exception e) {
                e.printStackTrace();
                transaction.rollback();
                System.out.println("操作失败!");
            }
        }
        public static void main(String[] args) {
            testCUD();
        }
    }

    首先在执行之前我们看一下数据库中的数据截图:

      

    执行结果截图:

      

    我们再来看下数据库执行前后的结果对比:

      

    测试结果:

      如果增删改在同一个事务中,那么其默认执行顺序为增C改U删D!

    二、我们知道默认的一般我们可以人为去修改、那么怎么修改呢?(session.flush())

      修改方式是用session.flush()、这里需注意以session.flush()为分界线其前面的操作也按照默认执行顺序走!

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    开源协议
    开发新技能
    UML 思维导图 思维脑图 xmind
    小方法
    Android Service
    JS 下载图片
    quartz任务执行完之后再执行下一轮任务
    easyui 下边有滚动条问题
    微信支付证书 系统找不到指定的文件
    Swiper 动态加载数据没有变化问题
  • 原文地址:https://www.cnblogs.com/aeon/p/10099066.html
Copyright © 2011-2022 走看看