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二级缓存