3

我目前使用jOOQ访问 java 中的嵌入式 H2 数据库以生成表类等。我目前可以执行查询,例如

create.select().from(TEST).fetch()

在我的代码中,返回结果等。

但是我无法查询信息架构。我可以使用 H2 控制台正常访问它,并且为给定的 information_schema 表创建视图工作正常。我的问题是我应该如何访问 information_schema 例如执行查询,例如

SELECT * FROM INFORMATION_SCHEMA.TABLES

从我的java代码中?我是否必须创建一个视图,是否可以通过 jooq-meta 或其他方式访问架构,或者我是否需要在 jooq-codegen 使用的属性文件中添加一些内容(information_schema 不是在生成的表类中创建的) ? 或者是其他东西?


编辑:这是我第一次尝试使用 jooq,并且来自 MySQL 背景。我有效地尝试实现的是能够运行一些单元测试以确保与数据库相关的代码正常工作。所以我想访问数据库的元数据(模式)并返回一些东西,而不必知道是否存在任何用户创建的表。

4

1 回答 1

2

INFORMATION_SCHEMA您可以为任何其他模式生成类。事实上,jOOQ-meta 包含一些对数据库模式进行逆向工程所需的类。

手册关于高级代码生成属性的部分提到了如何配置代码生成器以加载多个“输入模式”:

<database>
  <schemata>
    <schema>
      <inputSchema>...</inputSchema>
    </schema>
    [ <schema>...</schema> ... ]
  </schemata>
</database>
于 2012-08-22T07:28:22.697 回答