XML 元数据
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
jOOQ 提供了一个 JAXB 可序列化的 XML 表示形式的标准 SQL INFORMATION_SCHEMA:https://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 内容)。
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!