JOOQ vs JDBC +测试

Rom*_*per 3 jdbc jooq

JOOQ优于JDBC +测试有什么优势?

在JDBC中,您可以直接在代码中编写SQL查询,使用JOOQ我们调用方法,因此JOOQ默认情况下更慢.

在JOOQ中更难犯错误但并非不可能.这个错误可以在测试中捕获,使用JOOQ你也应该编写这些测试,因此,JOOQ没有优势.

Luk*_*der 10

我完全同意你的看法.无论您使用的是"动态语言"(SQL作为外部DSL,例如JDBC)还是"静态语言"(SQL作为内部DSL,例如jOOQ),最好进行测试

但还有更多:

你似乎只抓住了jOOQ可以为你做的事情.当然,类型安全,嵌入式SQL是一个很棒的功能,但是一旦你拥有它,你就可以免费获得(列表远非详尽无遗):

当然,您可以免费获得您提到的编译时类型安全性(以及IDE自动完成).如果您不想全力投入jOOQ提供的内部DSL,您仍然可以使用纯SQL,然后以非类型安全的方式使用jOOQ的API(它仍具有大量功能):

// Just one example: CSV exports
String csvExport =
ctx.fetch("SELECT * FROM my_table WHERE id = ?", 3)
   .formatCSV();
Run Code Online (Sandbox Code Playgroud)

TL; DR:

  • JDBC是一种有线协议抽象API
  • jOOQ是一个SQL API

免责声明:

(当然,这个答案有偏见,因为我为jOOQ背后的公司工作)