R2DBC代码生成器

前言

话不多说,用习惯了mybatis-plus后,最简单的数据库映射实体之类的java文件是再也不想手动敲,一个个对注释了。故想着myabtis-plus-generator既然能生成mybatis-plus用的代码,我改下模板的话自然也能生成R2DBC的。

第一步,官网确认可不可以快速扩展

哎,确认过眼神,是我要的东西。
image

第二步,确认模板位置,看下大概语法

大致瓢下,
image

第三步,开干,试水

把模板复制出来,随便加点东西。可行
image
image

第四步,逐步确认模板

我们不看源码,可以初步达成以下成就,剩下的问题是table.importPackages包含了我们不需要的mybatisplus相关注解

  1. com.baomidou.mybatisplus.annotation.@TableName替换成org.springframework.data.relational.core.mapping.@Table
  2. com.baomidou.mybatisplus.annotation.@TableId替换成org.springframework.data.annotation.@Id

    调试源码,我们会找到mapper输出这里,如下图所示,现在我们只需找到这个数据源头,改了他就行了。
    com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine#batchOutput
    image
    此时我们可以看出,mybatisplus相关注解在config.getTableInfoList()里面给我加上了,
    image
    重启进去调试,很明确了,肯定是下面的步骤加上的
    image
    一路火花带闪电,确认TableName注解是开启convert加上的,关之。呃,关不掉,没有开放关闭api出来,自动设置时判定数据库表名与实体名不一样就加上。
    image
    后面那两个主键相关的是查询数据库信息,根据获得的ColumnsInfo来确定field,再根据field来设置,如果我们直接在数据库层面把主键设置去掉,那么这里就不会有这两个引入了。
    ok,看了这么久的源码,花了我三个小时,任务源码的没有完成。@TableName没找到遍历的方式解决,@IdType@TableId到是可以通过临时去掉数据库表主键的方式实现,但是改数据库的方式极其扯淡,那么就剩下人工大法了,只能生成过后,使用Intellij Idea的全局替换功能,把这三个引用干掉。
    image

终结篇

剩下的service,serviceImpl,Controlle之类的都简单了,稍微修改下就行。多出来的mapperXml文件,直接删掉就行。

本项目源码地址:https://gitee.com/security-demo/oauth2-client-webflux.git

posted @ 2021-10-31 22:23  临渊不羡渔  阅读(659)  评论(0编辑  收藏  举报