可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

XML 元数据

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

jOOQ 提供了一个 JAXB 可序列化的 XML 表示形式的标准 SQL INFORMATION_SCHEMAhttps://jooq.org.cn/xsd/jooq-meta-3.20.0.xsd。此格式可以导入和导出为 org.jooq.util.xml.jaxb.InformationSchema,并转换为 org.jooq.Meta

// Using strings:
create.meta(
         "<information_schema>...</information_schema>"
       )
      .getTables()
      .forEach(System.out::println);

或者

// Using JAXB annotated API:
create.meta(informationSchema)
      .getTables()
      .forEach(System.out::println);

假设以下 XML 内容

<information_schema>
   <tables>
      <table>
         <table_name>a</table_name>
         <table_type>BASE TABLE</table_type>
      </table>
      <table>
         <table_name>b</table_name>
         <table_type>BASE TABLE</table_type>
      </table>
      <table>
         <table_name>c</table_name>
         <table_type>BASE TABLE</table_type>
      </table>
   </tables>
   <columns>
      <column>
         <table_name>a</table_name>
         <column_name>i</column_name>
         <data_type>int</data_type>
         <ordinal_position>1</ordinal_position>
         <is_nullable>true</is_nullable>
      </column>
      <column>
         <table_name>b</table_name>
         <column_name>j</column_name>
         <data_type>int</data_type>
         <ordinal_position>1</ordinal_position>
         <is_nullable>true</is_nullable>
      </column>
      <column>
         <table_name>c</table_name>
         <column_name>k</column_name>
         <data_type>int</data_type>
         <ordinal_position>1</ordinal_position>
         <is_nullable>true</is_nullable>
      </column>
   </columns>
</information_schema>

以上代码打印了 DDL 脚本中的所有表

a
b
c

所有元数据都可用,包括列名、类型、约束等。

XML 也可以从 org.jooq.Source 读取,它表示任何提供源的字符串,包括文件、输入流等。

导出 XML

任何 org.jooq.Meta 实现都可以使用 Meta.informationSchema() 导出回 XML(JAXB 注释的 API,使用 JAXB 获取 XML 内容)。

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo