1. 程式人生 > >dljd_027_增改刪在同一個事務中的默認執行順序

dljd_027_增改刪在同一個事務中的默認執行順序

ace 學生 nat out ber code 執行 llb spa

一、測試增刪改在同一個事務中的默認執行順序示例

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_增改刪在同一個事務中的默認執行順序