R2DBC代码生成器
前言
话不多说,用习惯了mybatis-plus后,最简单的数据库映射实体之类的java文件是再也不想手动敲,一个个对注释了。故想着myabtis-plus-generator既然能生成mybatis-plus用的代码,我改下模板的话自然也能生成R2DBC的。
第一步,官网确认可不可以快速扩展
哎,确认过眼神,是我要的东西。
第二步,确认模板位置,看下大概语法
大致瓢下,
第三步,开干,试水
把模板复制出来,随便加点东西。可行
第四步,逐步确认模板
我们不看源码,可以初步达成以下成就,剩下的问题是table.importPackages
包含了我们不需要的mybatisplus相关注解
com.baomidou.mybatisplus.annotation.@TableName
替换成org.springframework.data.relational.core.mapping.@Table
com.baomidou.mybatisplus.annotation.@TableId
替换成org.springframework.data.annotation.@Id
调试源码,我们会找到mapper输出这里,如下图所示,现在我们只需找到这个数据源头,改了他就行了。
com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine#batchOutput
此时我们可以看出,mybatisplus
相关注解在config.getTableInfoList()
里面给我加上了,
重启进去调试,很明确了,肯定是下面的步骤加上的
一路火花带闪电,确认TableName
注解是开启convert加上的,关之。呃,关不掉,没有开放关闭api出来,自动设置时判定数据库表名与实体名不一样就加上。
后面那两个主键相关的是查询数据库信息,根据获得的ColumnsInfo
来确定field
,再根据field来设置,如果我们直接在数据库层面把主键设置去掉,那么这里就不会有这两个引入了。
ok,看了这么久的源码,花了我三个小时,任务源码的没有完成。@TableName
没找到遍历的方式解决,@IdType
与@TableId
到是可以通过临时去掉数据库表主键的方式实现,但是改数据库的方式极其扯淡,那么就剩下人工大法了,只能生成过后,使用Intellij Idea的全局替换功能,把这三个引用干掉。
终结篇
剩下的service
,serviceImpl
,Controlle
之类的都简单了,稍微修改下就行。多出来的mapperXml
文件,直接删掉就行。
本项目源码地址:https://gitee.com/security-demo/oauth2-client-webflux.git
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律