JOOQ vs JDBC +测试

时间:2017-02-13 14:49:47

标签: jdbc jooq

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

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

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

1 个答案:

答案 0 :(得分:9)

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

但还有更多:

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

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

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

TL; DR:

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

声明:

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