JOOQ vs Hibernate

Gop*_*005 20 java sql database hibernate jooq

当我在聊天时与stackoverflowers聊天并使用Java阅读有关数据库的其他教程时,他们会指导我使用JOOQ而不是HIBERNATE.

我完全了解ORM和Hibernate,我更喜欢使用Hibernate,现在通过阅读小项目的教程和实现来了解几乎关于JOOQ的知识.

但我感到困惑的是我的动态网络应用程序选择什么以及什么是更好的,可以是更大,更大,更小,无论是Hibernate还是JOOQ?

谷歌搜索了很多,但越来越混淆了...... !!! 就像:这个,这个这个.

哪一个最适合开发人员的不同条件和情况.

Luk*_*der 27

虽然jOOQ和Hibernate竞争相同的目标受众,但他们根本无法解决同样的问题.您已经在问题中链接了这篇文章.它的本质很简单:

  • 你要解决对象图持久性问题吗?使用ORM(例如Hibernate)
  • 你打算将SQL嵌入Java吗?使用SQL(例如jOOQ)

当然,由于两个API都涉及访问关系数据库,因此它们在一定程度上重叠了功能.例如,Hibernate也支持简单查询,而jOOQ也支持简单映射.

虽然我们应该避免深入研究关于对象图持久性或SQL是否是与数据库交互的更好方法的主观讨论,但我认为上述是一个非常客观的答案,一旦你做出主观决定,API更适合.

AND:您可以同时使用两者,例如ORM/Hibernate用于CRUD,SQL/jOOQ用于报告.

(免责声明:我为jOOQ背后的公司工作,所以这个答案有偏见)

  • 报告利用了许多高级SQL功能.当然,您*仍然可以使用Hibernate/HQL/JPQL,但是您的报告会比使用普通SQL编写的报告要慢得多,难以维护... (5认同)
  • *"大多数人在做出决定时会依赖他们认为确定的知识(成本分析)."* - 这里唯一确定的是那些人应该阅读Daniel Kahneman的[*"思考速度慢"](https: //en.wikipedia.org/wiki/Thinking,_Fast_and_Slow).Kahneman令人印象深刻地展示了我们对"损失"("成本")的恐惧如何以非常不幸的方式偏离我们的决定.此外,到目前为止,显然我们不再讨论这里的具体成本,而是试图提出要点,这对于Stack Overflow问题来说有点偏离主题. (3认同)