我目前正在评估JOOQ
,因为我相信我开始重新发明看起来非常接近部分的轮子JOOQ
:)
现在,在深入研究优秀JOOQ
文档时,我发现我的用例介于使用 JOOQ 作为 SQL Builder和使用 JOOQ 作为 SQL Builder 和代码生成之间,即我想:
- 创建普通 SQL 字符串,如使用 JOOQ 作为 SQL Builder部分中所示
- 而不是使用硬编码的
DSL.fieldByName("BOOK","TITLE")
结构,我更喜欢存储表的名称以及它的列名和类型,如使用 JOOQ 作为带有代码生成部分的 SQL Builder 中所示 - 我不喜欢使用代码生成(至少不是定期),而是
TableImpl
在需要新表时自己创建。
在手动挖掘时,我在Generated tables章节中发现了 table implementation 应该是什么样子。但是,TableImpl类以及Table接口应该使用记录类型进行参数化,对于TableField类也是如此。我相信这样做是为了在直接查询数据库和检索结果时更容易进行类型推断,尽管我可能弄错了。
所以我的问题是:
- 手册中是否有关于如何创建Table和TableField实现的指南?或者我可以简单地为我的数据库模式生成一次并使用生成的代码作为指导?
- 如何在实现的类中优雅地“丢弃”记录类型参数?首先,我考虑过使用
java.lang.Void
类作为类型参数,但后来我注意到只允许记录的子类......原因是我根本不需要记录类型,因为我计划在类似SpringJOOQ
的东西中使用 SQL 查询生成的JdbcTemplate所以映射是我自己完成的。
提前感谢您的帮助!