开篇说明
jooq是一个开源框架。它可以将数据库表转化成相应的java类,并在此基础上提供了一套数据处理的API。关于更多信息请官网。 本文是关于jooq在maven中的配置说明,项目基于上篇flyway在maven中的配置。参考了从零开始jooq。
jooq配置流程
- 配置依赖
jooq最新是3.15.5版本
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq</artifactId>
<version>3.15.5</version>
</dependency>
- 配置plugin
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<configuration>
<jdbc>
<driver>com.mysql.cj.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1:3306/spring_play?serverTimezone=GMT%2B8</url>
<user>root</user>
<password>123456</password>
</jdbc>
<generator>
<database>
<inputSchema>spring_play</inputSchema>
<excludes>flyway_schema_history</excludes>
</database>
<target>
<packageName>com.slj.springplaymvn.codegen</packageName>
<directory>/src/main/java</directory>
</target>
</generator>
</configuration>
</plugin>
- 配置configuration说明
- jdbc配置:数据库连接配置,不做说明。
<inputSchema>spring_play</inputSchema> :一般填数据库名字<excludes>flyway_schema_history</excludes> :flyway_schema_history表不生成对应的java代码<packageName>com.slj.springplaymvn.codegen</packageName> :生成的java代码存放的包名,codegen是生成的新文件夹。包里不能有其他的业务,因为jooq代码生成是全量的,每次该文件夹的内容会全部更新。<directory>/src/main/java</directory> :目录,使用idea默认配置生成的项目一般是/src/main/java- 更多参数参考:jooq插件配置
- 效果如图所示
flyway结合jooq
jooq官网对flyway和jooq的合体做了更进一步的扩展。 正常情况下我们的开发流程如下图所示: 那有没有办法在数据库脚本修改后,一个指令操作,是两个插件同时更新呢?jooq官网给出了方案。 但是!此方案jooq的版本不能指定为3.15.5,去掉版本号之后默认安装的是jooq3.14.15,此时再单独执行jooq generator会报错! 如何配置在于读者自行选择,之后的项目维护中我会按照jooq3.15.5版本处理。
- 方案最大的改动是增加了execution部分,直接上xml
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>migrate</goal>
</goals>
</execution>
</executions>
<configuration>
<url>${db.url}</url>
<user>${db.user}</user>
<password>${db.password}</password>
</configuration>
</plugin>
<plugin>
<groupId>org.jooq</groupId>
<artifactId>jooq-codegen-maven</artifactId>
<executions>
<execution>
<id>java-generator</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<jdbc>
<url>${db.url}</url>
<user>${db.user}</user>
<password>${db.password}</password>
</jdbc>
<generator>
<database>
<inputSchema>spring_play</inputSchema>
<excludes>flyway_schema_history</excludes>
</database>
<target>
<packageName>com.slj.springplaymvn.codegen</packageName>
<directory>/src/main/java</directory>
</target>
</generator>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
- 终端执行
mvn clean install ,两个插件一起运行结果如下图所示。
如果代码已经被改动,可以通过提交信息,查看此文配置的修改。
如何查看github项目的历史提交
之后的项目会添加更多的功能,敬请期待。最近工作有点累,但还是努力学习中,加油!💪
|