-
cache标签的属性: usage属性(必备):表示事务模式,总共提供了4种:read-only、transactional、read-write、nonstrict-read-write include属性:有两个值,分别是all(全缓存)与non-lazy(不对该实体进行懒加载的属性进行缓存). region属性:该属性值可以随意命名,作用是在ehcache.xml配置文件中引用region属性的值指定为该实体配置缓存策略.查看全部
-
Hibernate二级缓存 二级缓存的生命周期是SessionFactory,当SessionFactory关闭时,缓存才会清空. 二级缓存是每个session共用的缓存,并不是默认开启的,需要手动去配置. 配置二级缓存的步骤: 1.添加二级缓存对应的jar包. jar包:commons-logging-1.1.3.jar、ehcache.jar 2.在Hibernate的配置文件中添加Provider类的描述(即添加二级缓存接口对应外部的实现类). <property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property> 3.添加二级缓存的属性配置文件,直接放在src根目录即可. ehcache.xml 4.在需要被缓存的表所对应的映射文件中添加<cache/>标签. 在<class>标签下添加<cache usage="read-only"/> 虽然已经给Hibernate添加二级缓存,但是实体类并不是默认开启二级缓存的,因此需要在被缓存的表所对应的映射文件中添加<cache/>标签指明进行开启.查看全部
-
使用Query接口的list方法进行查询数据时,不会使用到缓存. 即同一Query接口使用多次list方法对同一实体进行查询时,会发送多次sql语句.但缓存中一样会保留查询的数据,只是list方法不会去缓存中查找数据. Hibernate的Query接口还提供使用Iterator迭代器进行查询. 使用Query接口的iterator()方法返回包含该结果集的Iterator实例. 然后使用Iterator的hasNext()方法判断是否还存在待遍历对象. 使用Iterator的next()方法获取当前遍历的对象. Query query=session.createQuery("from Employee"); Iterator iterator=query.iterator(); while(iterator.hasNext()){ Employee emp=(Employee)iterator.next(); } 使用Iterator迭代器进行查询时,会使用缓存. Iterator使用缓存步骤: 首先从数据库查询目标对象的id字段,然后根据id字段到缓存中查找数据,若缓存中存在该数据,则直接从缓存获取,否则重新发送完整sql语句到数据库中获取数据.查看全部
-
一级缓存有时候也会对程序的性能产生影响. 因为在对数据进行增删改操作时,同样需要更新缓存中的数据. 即本来保存在缓存中的对象,当被更新后,同一个session再次访问被更新后的对象时,就会重新发送sql语句获取对象. 但总体上还是提升了查询效率.查看全部
-
Hibernate一级缓存的API 一级缓存是默认并且强制开启的,不可取消. Hibernate提供了两个方法对一级缓存进行管理. evict(Object obj):用于将某个对象从session的一级缓存中清除. clear():用于将一级缓存中的所有对象全部清楚. 即缓存保存了某些对象,使用clear方法后,当再次使用同一session进行获取对象时,需要重新在数据库中查找. 都是session对象的方法.查看全部
-
Hibernate一级缓存: Hibernate一级缓存又称为Session缓存、会话级缓存. 通过Session从数据库查询实体时会把实体在内存中存储起来,下一次查询同一实体时不再从数据库获取,而从内存中获取. 一级缓存的生命周期与session相关,随着session的关闭而关闭. 一级缓存中的数据可适用范围在当前会话之内.查看全部
-
Query方法查看全部
-
一级缓存不可取消查看全部
-
总结:查看全部
-
一二级缓存的对比:查看全部
-
什么情况使用二级缓存:查看全部
-
二级缓存:查看全部
-
二级缓存的配置步骤: 添加二级缓存对应的jar包 在Hibernate的配置文件中添加Provider类的描述 添加二级缓存的属性配置文件 在需要被缓存的表所对应的映射文件中添加<cache/>标签查看全部
-
一级缓存API 一级缓存是Hibernate的默认缓存,无法取消,用两个方法管理 evict():用于将某个对象从Session的一级缓存中清除。 clear():用于将一级缓存中的所有对象全部清除。查看全部
-
一级缓存:查看全部
举报
0/150
提交
取消