十分种学会Hibernate数据记录技术

开发 后端
Hibernate提供了一系列数据记录,其记录的内容包括从最基本的信息到与具体场景的特殊信息。Hibernate数据记录总共分三类。

本文向大家介绍Hibernate数据记录,可能好多人还不了解Hibernate数据记录,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

Hibernate提供了一系列数据记录,其记录的内容包括从最基本的信息到与具体场景的特殊信息。所有的测量值都可以由 Statistics接口进行访问,主要分为三类:

◆使用Session的普通数据记录,例如打开的Session的个数、取得的JDBC的连接数等;

◆实体、集合、查询、缓存等内容的统一数据记录

◆和具体实体、集合、查询、缓存相关的详细数据记录

例如:

你可以检查缓存的命中成功次数,缓存的命中失败次数,实体、集合和查询的使用概率,查询的平均时间等。请注意 Java中时间的近似精度是毫秒。Hibernate的数据精度和具体的JVM有关,在有些平台上其精度甚至只能精确到10秒。

你可以直接使用getter方法得到全局数据记录(例如,和具体的实体、集合、缓存区无关的数据),你也可以在具体查询中通过标记实体名、 或HQL、SQL语句得到某实体的数据记录。请参考Statistics、EntityStatistics、 CollectionStatistics、SecondLevelCacheStatistics、 和QueryStatistics的API文档以抓取更多信息。下面的代码则是个简单的例子:

  1. Statistics stats = HibernateUtil.sessionFactory.getStatistics();  
  2.  
  3. double queryCacheHitCount  = stats.getQueryCacheHitCount();  
  4. double queryCacheMissCount = stats.getQueryCacheMissCount();  
  5. double queryCacheHitRatio =  
  6.   queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);  
  7.  
  8. log.info("Query Hit ratio:" + queryCacheHitRatio);  
  9.  
  10. EntityStatistics entityStats =  
  11.   stats.getEntityStatistics( Cat.class.getName() );  
  12. long changes =  
  13.         entityStats.getInsertCount()  
  14.         + entityStats.getUpdateCount()  
  15.         + entityStats.getDeleteCount();  
  16. log.info(Cat.class.getName() + " changed " + changes + "times"  ); 

如果你想得到所有实体、集合、查询和缓存区的数据,你可以通过以下方法获得实体、集合、查询和缓存区列表: getQueries()、getEntityNames()、 getCollectionRoleNames()和 getSecondLevelCacheRegionNames()。

上面是的例子说明了Hibernate数据记录技术。

【编辑推荐】

  1. 简述Hibernate中加载并存储对象
  2. Hibernate传播性持久化攻略
  3. 深入了解Hibernate自动状态检测
  4. 简单学会Hibernate对象持久化
  5. 分析Hibernate自增主键
责任编辑:仲衡 来源: javanb
相关推荐

2023-11-09 14:44:27

Docker镜像容器

2024-03-04 15:19:52

Python编程内建函数

2021-11-28 22:16:01

Go语言工具

2019-08-13 09:11:26

2016-12-22 21:47:04

SEDLinuxUnix

2010-01-04 15:39:24

Ubuntu SVN

2023-04-12 08:21:30

ChatGPTQQDiscord

2015-11-06 11:03:36

2024-07-11 23:03:39

2020-12-17 06:48:21

SQLkafkaMySQL

2017-08-01 15:25:41

LinuxNginxHttps

2024-10-08 11:12:12

2019-04-01 14:59:56

负载均衡服务器网络

2010-02-05 14:57:31

Ubuntu SVN

2022-03-04 16:06:33

数据库HarmonyOS鸿蒙

2022-06-16 07:31:41

Web组件封装HTML 标签

2024-06-19 09:58:29

2021-09-07 09:40:20

Spark大数据引擎

2015-10-28 13:57:29

融合架构华三UIS

2023-04-12 11:18:51

甘特图前端
点赞
收藏

51CTO技术栈公众号