JOOQ:用字符串获取表和列?

时间:2017-10-12 21:22:10

标签: java spring-boot jooq

您好我正在使用带有Spring Boot的JOOQ,并想知道是否有办法获取一个表及其列名称的字符串?例如:

我希望能够通过以下方式获得一张桌子:

someObject.getTable("user")

然后使用该get方法的结果我还想获取该表的所有列,并能够将列名与其他字符串进行比较。换句话说,如果有办法获取表,我是否也可以从同一个对象中获取表的列名?

我真的很感激任何帮助。

2 个答案:

答案 0 :(得分:2)

是的,你可以:

使用代码生成器

生成架构时,您可以从生成的代码中获取所有这些信息。只需转到您的架构并查找该表(区分大小写!):

Table<?> table = PUBLIC.getTable("user");

然后:

Field<?>[] fields = table.fields();

使用org.jooq.Meta

如果您没有生成元数据,您仍然可以使用DSLContext.meta()从JDBC连接中查找内容,您可以从中导航模式/表格等。

答案 1 :(得分:0)

是的。正如上面正确指出的那样,只有一个补充可以进一步澄清即将到来的用户, PUBLIC是您的DefaultSchema,如果有,则为元生成的代码。 所以,

Table<?> table = new DefaultSchema().getTable("user");