`
badboy_990726
  • 浏览: 11971 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Hibernate中缓存的统计策略-generate_statistics

阅读更多
        在Hibernate程序中如果配置了二级缓存,想查看一下二级缓存中存放的数据条数,查询时错过的数据条数,缓存命中率等信息,那么该怎么办呢?

        在Hibernate的hibernate.cfg.xml文件中,提供了hibernate.generate_statistics属性,该属性提供了Hibernate应用中操作的统计信息,必须在hibernate.cfg.xml文件中进行配置。该属性在配置文件中的默认值是关闭的,因为它会消耗一些资源,但是它很适合在我们开发过程中调试程序时使用。hibernate.cfg.xml文件中的配置如下:

        <property name="generate_statistics">true</property/>


        这时我们已经将Hibernate的统计信息打开了,接下来我们应该怎样使用它呢?

        在org.hibernate.SessionFactory类中提供了一个得到统计信息的方法,该方法返回一个Statistic类型的数据。之后我们通过Statistics对象取出数据操作时的缓存信息。它提供了取出全部统计信息和取出指定缓存的统计信息,例如:我们就想查看二级缓存中的统计信息,那么可以通过方法指定。例如:我们添加一条数据,该方法是addPet(),将该方法放到main()方法中测试,如下:

        addPet()方法的实现:

 public void addPet(){
  // 创建一个Hibernate Configuration类的实例
  Configuration config = new Configuration().configure() ;
  // 创建SessionFactory对象
  SessionFactory sf = config.buildSessionFactory() ;
  // 调用调添加方法                                                                                                                                                   
  PetDaoImpl petImpl = new PetDaoImpl();

  petImpl.add();

  // 创建Statistics对象,并通过SessionFactory对象获得统计信息
  Statistics st =  sf.getStatistics();
  // 打印全部统计信息
  System.out.println(st);
  // 打印二级缓存信息
  System.out.println(st.getSecondLevelCacheHitCount());
 }

         将addPet()方法添加到main()方法中进行测试,将会输出统计信息。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics