當前位置: 首頁> 學習園地

愛尚實訓-Hibernate對象狀態和一對多關系的實現-一級緩存操作-哈爾Java培訓

2018-09-07 15:35:26更新

 

二、一級緩存

2.1 介紹

上海时时彩 www.rcmdl.com l 一級緩存:又稱為session級別的緩存。當獲得一次會話(session),hibernate在session中創建多個集合(map),用于存放操作數據(PO對象),為程序優化服務,如果之后需要相應的數據,hibernate優先從session緩存中獲取,如果有就使用;如果沒有再查詢數據庫。當session關閉時,一級緩存銷毀。

2.2 一級緩存操作

2.2.1 證明一級緩存

@Test

public void fun1() {

Session session = HibernateUtil.openSession();

Transaction ts = session.beginTransaction();

// --------------------------------------------------------

User u1 = (User) session.get(User.class, 1); // 發送sql語句,取出數據,并封裝對象

// 持久化的對象,存到了緩存中

User u2 = (User) session.get(User.class, 1); // 再次查詢時,會從緩存中查找

// 不會再發送sql語句

User u3 = (User) session.get(User.class, 1); // 再次查詢時,會從緩存中查找

// 不會再發送sql語句

 

System.out.println(u1 == u2);

System.out.println(u1 == u3);

 

// --------------------------------------------------------

ts.commit();

session.close();

}

 

 

釋疑:

第一次調用get方法執行過程原理

 

第二次調用get方法獲取同一對象執行過程原理(不查詢數據庫)