从零开发项目-jooq在maven中的配置

开篇说明

jooq是一个开源框架。它可以将数据库表转化成相应的java类,并在此基础上提供了一套数据处理的API。关于更多信息请官网
本文是关于jooq在maven中的配置说明,项目基于上篇flyway在maven中的配置。参考了从零开始jooq

jooq配置流程

  1. 配置依赖
    jooq最新是3.15.5版本
<dependency>
        <groupId>org.jooq</groupId>
        <artifactId>jooq</artifactId>
        <version>3.15.5</version>
</dependency>
  1. 配置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>
  1. 配置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插件配置
  1. 效果如图所示
    结果

flyway结合jooq

jooq官网对flyway和jooq的合体做了更进一步的扩展。
正常情况下我们的开发流程如下图所示:
结构
那有没有办法在数据库脚本修改后,一个指令操作,是两个插件同时更新呢?jooq官网给出了方案
但是!此方案jooq的版本不能指定为3.15.5,去掉版本号之后默认安装的是jooq3.14.15,此时再单独执行jooq generator会报错!
报错
如何配置在于读者自行选择,之后的项目维护中我会按照jooq3.15.5版本处理。

  1. 方案最大的改动是增加了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>
  1. 终端执行mvn clean install,两个插件一起运行结果如下图所示。
    在这里插入图片描述

github源码地址

如果代码已经被改动,可以通过提交信息,查看此文配置的修改。

如何查看github项目的历史提交

之后的项目会添加更多的功能,敬请期待。最近工作有点累,但还是努力学习中,加油!💪

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值