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

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

但我很困惑,我的动态Web应用程序可以是大的、中的或小的(Hibernate或JOOQ),该 Select 什么,以及最合适的是什么?

BTW googled a lot but confused more and more...!!! 就像:this,thisthis.

对于开发人员来说,哪一种最适合不同的条件和情况?

推荐答案

虽然jOOQ和Hibernate争夺相同的目标受众,但它们根本没有解决相同的问题.You've already linked this article in your question美元.它的本质很简单:

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

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

虽然我们应该避免深入讨论对象图持久性或SQL是与数据库交互的更好方法这一主观讨论,但我认为,一旦您做出了主观决定,上面的回答就是对哪种API更合适的一个相当客观的答案.

AND:两种方法都可以使用,例如ORM/Hibernate用于CRUD,SQL/jOOQ用于报告.

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

Database相关问答推荐

为什么Hibernate会为@JoinTable的双向@OneToMany关系生成一个复杂的子查询?

为Postgres数据库字段创建复合索引

如何高效地存储棋局?

存储具有公共链接但 ID 很长的用户文件是否安全?

数据库是序列图中的控制器还是边界?

获取总和列的比率

有使用 H2 数据库的实际经验吗?

复制 MySQL 数据库的最简单方法?

Followers/following 关注者表数据库 struct

Oracle 数据库统计信息应该多久运行一次?

库存数据库的最佳 struct

应用程序服务器 JDBC 资源的 DataSource 或 ConnectionPoolDataSource

SQL-Server:还原数据库时,SQL 命令行中的 NOUNLOAD 和 STATS 是什么意思?

在 SQL 中与 NULL 值连接

是否有一个 postgres 命令来列出/删除所有materialized视图?

Hibernate 的 MariaDB 方言类名称是什么?

使用十进制数据类型(MySQL / Postgres)是否会影响性能

不带 WHERE 子句的 UPDATE 查询

如何将特定的、可变的 order订单保存到数据库中

ManyToOneRel 和 ForeignKey 的区别?