JOOQ:用字符串获取表和列?
Posted
技术标签:
【中文标题】JOOQ:用字符串获取表和列?【英文标题】:JOOQ: Get table and columns with string? 【发布时间】:2018-03-24 22:49:12 【问题描述】:您好,我正在将 JOOQ 与 Spring Boot 一起使用,并且想知道是否有一种方法可以获取带有名称字符串的表及其列?例如:
我希望能够通过执行以下操作来获得一张桌子:
someObject.getTable("user")
然后使用该 get 方法的结果,我还想获取该表的所有列,并能够将列名与其他字符串进行比较。换句话说,如果有办法获取表,我也可以从同一个对象中获取表的列名吗?
非常感谢您对此提供任何帮助。
【问题讨论】:
【参考方案1】:是的,你可以:
使用代码生成器
当您生成架构时,您可以从生成的代码中获得所有这些信息。只需转到您的架构并查找表(区分大小写!):
Table<?> table = PUBLIC.getTable("user");
然后:
Field<?>[] fields = table.fields();
使用org.jooq.Meta
如果您没有生成元数据,您仍然可以使用 DSLContext.meta()
从您的 JDBC 连接中查找内容,您可以从中导航您的架构/表/等。
【讨论】:
非常感谢,这正是我要找的!【参考方案2】:是的。如上所述,只有一个补充来进一步阐明即将到来的用户, PUBLIC 是您的 DefaultSchema,如果您有元生成代码。 所以,
Table<?> table = new DefaultSchema().getTable("user");
【讨论】:
以上是关于JOOQ:用字符串获取表和列?的主要内容,如果未能解决你的问题,请参考以下文章