当前位置: 首页 > 面试题库 >

Hibernate和JDBC性能如何?

长孙沈义
2023-03-14
问题内容

目前,我正在将JavaWeb应用程序从JDBC切换到Hibernate,在当前使用JDBC的实现中,我将应用程序初始化时将静态数据加载到静态变量中,因此我不需要每次需要一些静态数据时都直接访问数据库,现在切换到hibernate状态,据我研究,hibernate状态将加载的数据保存在缓存中,因此我想摆脱这些静态变量。

我对hibernate非常陌生,因此不确定从当前方法切换到hibernate是否会改善性能。我将进一步研究hibernate缓存,并运行一些性能测试,以查看哪种方法更好,但是希望就其他人对这两种方法的性能有何看法。

谢谢。


问题答案:

与大多数数据库供应商的Hibernate相比,JDBC将始终提供 更好的性能
。您可以按照下面的链接检查比较。他的结论是,Hibernate是快速与更少的行查询表时,其他JDBC是更好的方式:
http://phpdao.com/hibernate_vs_jdbc/

可以在Hibernate论坛讨论中找到另一个良好的性能统计信息,网址为https://forum.hibernate.org/viewtopic.php?f=1&t=931708

它指出了由于使用Hibernate而导致的以下性能下降顺序(请注意,可以通过根据需要调整Hibernate来改善此问题:

Objects: 8 - Hibernate: 10ms / Direct JDBC: 10ms = Ratio: 1.0
Objects: 16 - Hibernate: 10ms / Direct JDBC: 0ms = Ratio: Infinity
Objects: 64 - Hibernate: 20ms / Direct JDBC: 10ms = Ratio: 2.0
Objects: 256 - Hibernate: 150ms / Direct JDBC: 30ms = Ratio: 5.0
Objects: 512 - Hibernate: 210ms / Direct JDBC: 40ms = Ratio: 5.25
Objects: 1024 - Hibernate: 410ms / Direct JDBC: 70ms = Ratio: 5.857143
Objects: 2048 - Hibernate: 681ms / Direct JDBC: 180ms = Ratio: 3.7833333

Hibernate之所以选择JDBC和SQL查询,不是因为性能,而是因为主要原因是 对象持久性数据库独立性
,而不是编写特定于数据库的查询。您可以阅读以下PDF指南以获得更好的视图:

  • http://www.mindfiresolutions.com/mindfire/Java_Hibernate_JDBC.pdf


 类似资料:
  • 问题内容: 我们正在尝试优化我们的数据服务器应用程序。它通过mysql数据库存储股票和报价。而且我们对获取性能不满意。 语境 测试与结果 协议 通过在mysql命令行bin中运行生成的sql查询,可以获得mysql服务器上的执行时间。 服务器处于测试环境中:没有其他数据库读数,没有数据库书写 我们获取AAPL股票的857报价 案例1:与关联hibernate 这用857个报价对象填充了我们的库存对

  • 我正在比较旧方式和使用Hibernate之间的数据库“更新”性能。 这是我的数据库结构:document->code->code_details。父表和子表之间存在一对多的关系。 我对其进行了分解,并注意到在Hibernate版本中,大多数时间都在占用“query.executeUpdate()”->954毫秒和“hibernateTransaction.commit()”->750毫秒。 如何在

  • 本文向大家介绍JDBC和Hibernate之间的区别,包括了JDBC和Hibernate之间的区别的使用技巧和注意事项,需要的朋友参考一下 JDBC是Java数据库连接的首字母缩写。它用于将您的应用程序连接到数据库和事务。它是一个开源Java api。   Hibernate还用于将您的应用程序连接到数据库并执行与数据库相关的事务,但是使用不同的方法。它有一个对象关系库,该库将java的对象映射到

  • 问题内容: 我需要将几亿条记录插入mysql db。我要一次插入一百万个。请在下面查看我的代码。它似乎很慢。有什么方法可以优化它吗? 问题答案: 我在mysql中遇到类似的性能问题,并通过在连接URL中设置useServerPrepStmts和rewriteBatchedStatements属性来解决。

  • 我有以下代码行: log4net。后勤经理。GetLogger(“m”)。调试(DateTime.Now.ToString(“hh:mm:ss.fff”)“Check-1”); 设置=会话。CreateQuery(“来自设置s”)。UniqueResult Log4net. LogManager. GetLogger("m"). Debug(DateTime. Now. ToString("hh:

  • 是否有人知道如何提高配置单元JDBC连接的性能。 详细问题: 当我从配置单元CLI查询配置单元时,我在7秒内得到响应,但从配置单元JDBC连接,我在14秒后得到响应。我想知道是否有任何方法(配置更改)可以通过JDBC连接来提高查询的性能。 提前道谢。