1. 程式人生 > >物件的三種狀態(hibernate管理的物件)

物件的三種狀態(hibernate管理的物件)

在這裡插入圖片描述

  1. 臨時狀態
    當物件被new出來的時候就是臨時狀態

  2. 持久狀態
    hibernate通過管理物件來操作資料庫,這裡物件指的是持久態的物件

程式碼:

// 測試 
		
	 //呼叫自己寫的方法獲取到session	
     Session session = HibernateUtils.openSession();
     
  
	 //查詢一個學生
	 Student s = session.get(Student.class, 22);
	 
	 //提交事務
	 session.beginTransaction().commit();
	
	 
	 //輸出學生
	 System.out.println(s.toString());
	 
	 //修改物件,即可修改資料庫資料
     s.setSname("測試");
     
     //提交事務
     session.beginTransaction().commit();
     

     //再查詢一遍這個學生
     Student s2 = session.get(Student.class, 22);
     
     //提交事務
     session.beginTransaction().commit();
     
	 //輸出學生
	 System.out.println(s2.toString());
       

控制檯:

Hibernate: 
    select
        student0_.sid as sid1_0_0_,
        student0_.sname as sname2_0_0_ 
    from
        t_hibernate_student student0_ 
    where
        student0_.sid=?
Student [sid=22, sname=小明]
Hibernate: 
    update
        t_hibernate_student 
    set
        sname=? 
    where
        sid=?
Student [sid=22, sname=測試]

  1. 遊離狀態
    遊離狀態即是把session關閉後的狀態

  2. 各種狀態的物件是可以相互轉換