程序化配置和执行
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
使用 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 用户名/密码
反馈
您对此页面有任何反馈吗?我们很乐意听到您的意见!