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()方法中进行测试,将会输出统计信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值