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