您好我正在使用带有Spring Boot的JOOQ,并想知道是否有办法获取一个表及其列名称的字符串?例如:
我希望能够通过以下方式获得一张桌子:
someObject.getTable("user")
然后使用该get方法的结果我还想获取该表的所有列,并能够将列名与其他字符串进行比较。换句话说,如果有办法获取表,我是否也可以从同一个对象中获取表的列名?
我真的很感激任何帮助。
答案 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");