0

我在 Swing 应用程序中使用 Hibernate 3.3。我想检索有关已执行交易的一些统计信息,并将该信息提供给我的视图。例如:

  • 执行时间处理时间
  • 接触的行数
  • 事务类型(更新、删除、创建、选择等)

我有几个助手类。我正在考虑使用一些公共字段,例如 executionTime、noRows、transactionStatus 等,并将它们填充到 finalize() 方法中。

Hibernate 是否提供了访问此类数据的方法?

4

1 回答 1

2

是的,Hibernate 提供实时统计数据。Hibernate 书中的用法示例:

Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
stats.setStatisticsEnabled(true);
...

stats.getSessionOpenCount();
stats.logSummary();

EntityStatistics itemStats = stats.getEntityStatistics("auction.model.Item");
itemStats.getFetchCount();

统计接口Statistics用于全局信息、EntityStatistics有关特定实体的信息、CollectionStatistics特定集合角色、QueryStatisticsSQL 和 HQL 查询以及SecondLevelCacheStatistics有关可选二级数据缓存中特定区域的详细运行时信息。一个方便的方法是logSummary(),通过一次调用将完整的摘要打印到控制台。如果要通过配置而不是编程方式启用统计信息收集,请将hibernate.generate_statistics配置属性设置为 true。有关各种统计信息检索方法的更多信息,请参阅 API 文档。

如果您在应用服务器中运行,您还可以配置 JMX 以提供统计信息。

于 2010-02-14T13:06:13.520 回答