JOOQ优于JDBC +测试有什么优势?
在JDBC中,您可以直接在代码中编写SQL查询,使用JOOQ我们调用方法,因此JOOQ默认情况下更慢.
在JOOQ中更难犯错误但并非不可能.这个错误可以在测试中捕获,使用JOOQ你也应该编写这些测试,因此,JOOQ没有优势.
Luk*_*der 10
我完全同意你的看法.无论您使用的是"动态语言"(SQL作为外部DSL,例如JDBC)还是"静态语言"(SQL作为内部DSL,例如jOOQ),最好进行测试
你似乎只抓住了jOOQ可以为你做的事情.当然,类型安全,嵌入式SQL是一个很棒的功能,但是一旦你拥有它,你就可以免费获得(列表远非详尽无遗):
INSERT,UPDATE,DELETE手动声明.jOOQ UpdatableRecord大大简化了这一点,同时提供了以下内容:
RecordListener 用于记录生命周期管理LIMIT子句的部分中看到,例如 -  SQL中标准最差的条款之一ExecuteListener,允许您挂钩各种JDBC交互步骤,包括:
VisitListenerSPI允许您在查询表达式树中的任意位置拦截SQL生成.这可能非常有用,例如实现行级安全性等强大功能.TABLE和OBJECT类型(想象实现SQLData等)当然,您可以免费获得您提到的编译时类型安全性(以及IDE自动完成).如果您不想全力投入jOOQ提供的内部DSL,您仍然可以使用纯SQL,然后以非类型安全的方式使用jOOQ的API(它仍具有大量功能):
// Just one example: CSV exports
String csvExport =
ctx.fetch("SELECT * FROM my_table WHERE id = ?", 3)
   .formatCSV();
(当然,这个答案有偏见,因为我为jOOQ背后的公司工作)
| 归档时间: | 
 | 
| 查看次数: | 872 次 | 
| 最近记录: |