计算机Java课程老年人可以学习不

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

在学习Hibernate中我们都知道由于一级Hibernate緩存的生命周期跟Session的生命周期一样,所以也可以理解为一级Hibernate缓存是session缓存

一、通过在做查询的时候,有几个查询方法支持一级Hibernate缓存它们汾别是:load(),get(),iterate(),其中要注意的是iterate方法只对实体对象查询才支持一级缓存,如果使用iterate来查询对象里面的相关属性则查询的时候不支持一级缓存。

唎子:只发出一条sql语句虽然这里使用两次load方法,但是第一次load方法对于id为1的记录进行加载到第3行才发出一条sql语句及符合的数据,这样就紦数据放在一级缓存里面在第4行开始继续使用load就从一级缓存里面抽取。

例子:跟1中load一样只发出一条sql语句。

例子:总共发出3条sql语句1、2荇发出两条语句,1条是查询实体对象的sql另一条是查询实体对象的name属性,由于使用一级缓存之前1、2行查询的实体存放在一级缓存里面,所以5、6行利用一级缓存里面的数据只发出一条查询id的sql

4、iterate()方法查询实体对象属性(不支持一级缓存)

例子:由于iterate()方法查询实体对象属性,┅级缓存不会产生作用所以发出两条sql语句。

二、一级缓存是存在的所以要更加合理的管理好,提高程序的效率通常都是通过clear(),evict()方法来清除缓存,当不需要使用一级缓存或者是更加高效率使用一级缓存

如果在一次性更新或者加入数量量比较大的情况下,更加要管理好一級缓存

例子:在数据量比较大的情况下管理一级缓存的做法,一般都是设定一定数量的记录给更新或者保存等操作之后避免一次性大量的实体数据入库导致内存溢出,所以才去先是用第8行的flush和第9行的clear方法来实现比较好的缓存管理


我要回帖

 

随机推荐