Hibernate---缓存(更深层次理解hibernate中对象的操作)
作用:提高效率。
一级缓存:示意图:

线程级别缓存session缓存,代碼来说事
package com.huhu.b_cache;
import com.huhu.domain.User;
import com.huhu.utils.HibernateUtils;
import org.hibernate.Session;
/**
* 对象的三种状态
*/
public class HibernateDemo2 {
//session缓存的存在
public void fun1() {
Session session = HibernateUtils.openSession();
session.beginTransaction();
//--------------------------------------
//发送select語句,从数据库取出记录,并封装成对象
//持久话对象==>存到缓存
User u1 = (User) session.get(User.class, 4);
System.out.println("放入缓存");
//再次查找是再缓存中查找,不答应sql语句
User u2 = (User) session.get(User.class, 4);
User u3 = (User) session.get(User.class, 4);
System.out.println("使用的是否是同一个session:");
System.out.println(u1==u2);
System.out.println(u1==u3);
//--------------------------------------
session.getTransaction().commit();
session.close();
}
public static void main(String[] args) {
HibernateDemo2 d = new HibernateDemo2();
d.fun1();
}
}

session中的快照:

结果:

总结:

二级缓存:
进程级别的缓存:Hibernate二级缓存
浙公网安备 33010602011771号