MyBatis和jOOQ之间的不同用例和技术差异[关闭]

问题描述 投票:0回答:1

据我所知,MyBatis和jOOQ用于类似的情况。所以我想知道什么时候应该在Spring应用中使用jOOQ而不是MyBatis,以及开发时每个库和框架带来的技术利弊。

如果有人已经熟练使用MyBatis这样的框架编写SQL查询,那么改用jOOQ会给他们带来哪些技术上的好处(查询运行时间、编译时错误)?

java spring database mybatis jooq
1个回答
2
投票

产品愿景

据我了解,MyBatis的产品愿景是提供一种在SQL语言之上实现模板化的方法,使用他们的XML语法。我们的目标是在外部文件中保留Java逻辑之外的SQL(可以在运行时替换,例如为查询添加提示),并使用本地SQL。(jOOQ也可以这样做,但这不是最宣传的功能)。) 使用纯SQL的优势显然是可以直接在数据库客户端中运行你的SQL,就像使用视图或存储过程一样。

jOOQ的产品愿景是通过将SQL作为一个Java API来实现,并通过代码生成,提供类型安全、嵌入式、动态SQL,为您的数据库模式提供类型安全访问。这里的重点是让你的SQL逻辑 部分 的,因为这将导致更好的类型安全,从而提高质量。这方面的副作用是 厂商中立性 (你的SQL会在许多方言上运行),而且非常容易。动态SQL. 如果你有这些要求,选择就很简单。

产品的其他特点

以上是各自产品的主要愿景,影响着人们对它们的认知,但这并不妨碍任何一款产品拥有额外的功能,这些功能可能会帮助你完成日常任务。我对MyBatis了解不深--他们的内部DSL似乎确实有了一些改进。动态SQL 最近,就像jOOQ可以用于偶尔的模板。一套 MyBatis中的子产品可以在这里看到。.

一些鲜为人知的jOOQ功能可能会或不会对你的日常工作有直接的用处,包括。

(声明:我为jOOQ背后的公司工作)

© www.soinside.com 2019 - 2024. All rights reserved.