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