hibernate缓存

在hibernate中缓存不需要做任何配置,但多了解一下还是很有助于写代码的

借用缓存,有时候分开查询比联合查询的速度更快。


缓存类型:

  1.一级缓存
  2.二级缓存
  3.查询缓存
  

一级缓存:

1.也叫做session级的缓存,它的生命周期也session一样,当session关闭的时候一级缓存清空

    2. 一级缓存只能缓存对象 
    
 load方法:支持一级缓存
 get方法:支持一级缓存
 
 iterator()方法:
   因为它有N+1的问题,所以要分开说:
  N:这部分是支持一级缓存
  1:这部分是不支持的。
 save:把对象放到了缓存中,如果在同一个session中,先save再load的话
 是不会发出sql语句的。
 
 缓存的管理:
    用session来管理缓存,使用clear()和evict()方法,清空缓存
    
二级缓存:
   1.只能缓存实体对象
   2.sessinFactory级的缓存
   
举例:两个session两次load

第一次load的时候,把对象放到了一级缓存和二级缓存,当sesion关闭的时候
只清空了一级缓存,下一次再load的时候,会先到一级缓存中去找,如果开启了
二级缓存就再到二级缓存中去找。


配置:(ehcache)

以下配置其实hibernate默认是开启的,所以不需要写任何内容!!,now,下面是解释:

在hibernate.cfg.xml中配置
   1.手工开启二级缓存
  <property name="hibernate.cache.use_second_level_cache">true</property>
  2.手工编写提供商
  <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
  3.指明那个类使用二级缓存
  <class-cache usage="read-only" class="com.sxdx.hibernate.vo.Book"/>
  注意:这句话放在<mapping>之后
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值