码迷,mamicode.com
首页 > 其他好文 > 详细

dljd_027_增改删在同一个事务中的默认执行顺序

时间:2018-12-10 22:00:37      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:ber   save   stun   rgs   开启   action   set   on()   删除   

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

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()为分界线其前面的操作也按照默认执行顺序走!

 

dljd_027_增改删在同一个事务中的默认执行顺序

标签:ber   save   stun   rgs   开启   action   set   on()   删除   

原文地址:https://www.cnblogs.com/aeon/p/10099066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!