扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Hibernate框架中共有两级缓存. Session级别的缓存是属于一级缓存,SessionFactory级别的缓存是二级缓存.
在化隆等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站制作 网站设计制作按需求定制制作,公司网站建设,企业网站建设,高端网站设计,成都全网营销推广,外贸网站建设,化隆网站建设费用合理。缓存:将数据库或硬盘中的数据,存入到内存中.当下次使用的时候可以从内存中获得,减少数据库访问次数.(优化)
1.什么是hibernate的一级缓存
在 Session 接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存. 只要 Session 实例没有结束生命周期, 存放在它缓存中的对象也不会结束生命周期.
2.一级缓存:生命周期与session一致.
3.程序测试
@Test
public void test1(){
Session s = null;
Transaction tx = null;
try{
s = HibernateUtil.getSession();
tx = s.beginTransaction();
//发送查询语句,并且把查询出来的实体类对象存入Session的缓存之中。
实体类 c1 = s.get(实体类.class, 94);
System.out.println(c1);
//会先去Session的缓存之中去查找,如果有就直接拿出来用。
实体类 c2 = s.get(实体类.class, 94);
System.out.println(c2);
tx.commit();
}catch(Exception e){
tx.rollback();
}finally{
s.close();
}
}
4.快照机制
@Test
public void test2(){
Session s = null;
Transaction tx = null;
try{
s = HibernateUtil.getSession();
tx = s.beginTransaction();
实体类 c1 = s.get(实体类.class, 94);
System.out.println(c1);//输出客户级别是:VIP客户
c1.setCustLevel("普通客户");//修改客户的级别是:普通客户
System.out.println(c1);//输出客户级别:普通客户
tx.commit();//默认在此时执行快照机制。用缓存和快照进行比较,如果不一致,使用缓存同步数据库中的数据,同时刷新缓存和快照。
}catch(Exception e){
tx.rollback();
}finally{
s.close();
}
}.
当执行到 tx.commit(); 默认在此时执行快照机制。用缓存和快照进行比较,如果不一致,使用缓存同步数据库中的数据,同时刷新缓存和快照。
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流