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:用字符串获取表和列?的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL 查询查找 Informix 表和列详细信息

MySql 从表和列中删除排序规则

从 JSON 数据自动生成 MySQL 表和列

MySQL 表和列的注释

Mysql连接多个表和列重复[关闭]

Sqlite:向表和列添加 COMMENT ON 描述?