【问题标题】:JOOQ: Get table and columns with string?JOOQ:用字符串获取表和列?
【发布时间】:2018-03-24 22:49:12
【问题描述】:

您好,我正在将 JOOQ 与 Spring Boot 一起使用,并且想知道是否有一种方法可以获取带有名称字符串的表及其列?例如:

我希望能够通过执行以下操作来获得一张桌子:

someObject.getTable("user")

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

非常感谢您对此提供任何帮助。

【问题讨论】:

    标签: java spring-boot jooq


    【解决方案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");
    

    【讨论】:

      猜你喜欢
      • 2019-09-02
      • 1970-01-01
      • 2017-06-09
      • 2012-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 2015-03-24
      相关资源
      最近更新 更多