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

程序化配置和执行

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

使用 Java、Groovy 等配置代码生成器。

在前面的章节中,我们已经介绍了如何使用 XML 设置 jOOQ 的代码生成器,可以通过运行独立的 Java 应用程序或使用 Maven。但是,也可以通过编程方式使用 jOOQ 的 GenerationTool。用于配置的 XSD 文件 (https://jooq.org.cn/xsd/jooq-codegen-3.20.1.xsd) 使用 XJC 进行处理,以生成 Java 工件。下面的示例使用这些工件来生成先前 PostgreSQL / Maven 示例 的等效配置。

// Use the fluent-style API to construct the code generator configuration
import org.jooq.meta.jaxb.*;
import org.jooq.meta.jaxb.Configuration;

// [...]

Configuration configuration = new Configuration()
    .withJdbc(new Jdbc()
        .withDriver("org.postgresql.Driver")
        .withUrl("jdbc:postgresql:postgres")
        .withUser("postgres")
        .withPassword("test"))
    .withGenerator(new Generator()
        .withDatabase(new Database()
            .withName("org.jooq.meta.postgres.PostgresDatabase")
            .withIncludes(".*")
            .withExcludes("")
            .withInputSchema("public"))
        .withTarget(new Target()
            .withPackageName("org.jooq.codegen.maven.example")
            .withDirectory("target/generated-sources/jooq")));

GenerationTool.generate(configuration);

对于上面的示例,您需要在类路径上包含 jooq-3.20.5.jar、jooq-meta-3.20.5.jar 和 jooq-codegen-3.20.5.jar。

手动加载 XML 文件

或者,您也可以使用 JAXB 从 XML 文件加载部分配置,并使用代码生成 API 以编程方式修改其他部分

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
    <jdbc>
        <driver>org.h2.Driver</driver>
        <!-- ... -->
    </jdbc>
</configuration>

使用标准 JAXB API 加载上述内容

import java.io.File;
import jakarta.xml.bind.JAXB;
import org.jooq.meta.jaxb.Configuration;

// [...]
// and then

Configuration configuration = JAXB.unmarshal(new File("jooq.xml"), Configuration.class);
configuration.getJdbc()
             .withUser("username")
             .withPassword("password");

GenerationTool.generate(configuration);

...然后,以编程方式修改配置的某些部分,例如 JDBC 用户名/密码

反馈

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

The jOOQ Logo