MybatisPlus 3.5.1 代码生成器 自定义Service层

2023-11-16

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>

使用Freemarker引擎模板

<dependency>
	<groupId>org.freemarker</groupId>
	<artifactId>freemarker</artifactId>
	<version>2.3.31</version>
</dependency>

OK,按照官方文档,写一个main方法

public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://192.168.10.1:3306/platform", "root", "root")
                .globalConfig(builder -> {
                    builder.author("wux") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir(System.getProperty("user.dir") + "/src/main/java"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.wux") // 设置父包名
                            .moduleName("platform") // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/resources/mapper")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder
                    		// 表前缀
                    		.likeTable(new LikeTable("wux_"))
                    		// 生成的entity过滤掉前缀
                    		.addTablePrefix("wux_");
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }

然后,service层得到的结构如下图
在这里插入图片描述
但其实我并不想使用 IServiceServiceImpl 这样的结构,Service只要有一层就可以了。
所以,我查了源码,发现代码生成器最后依赖模板生成,那只要改了模板结构就可以了。
找到项目依赖的 mybatis-plus-generator 3.5.1 jar包,使用解压缩文件打开,把templates包下的 serviceImpl.java.flt 复制出来,用文本编辑器打开,修改内容后再复制到jar包里面覆盖原来的就可以了。
在这里插入图片描述

在这里插入图片描述
还要把 serviceImpl 文件生成规则改一下,最终代码如下

public static void main(String[] args) {
        FastAutoGenerator.create("jdbc:mysql://192.168.10.1:3306/platform", "root", "root")
                .globalConfig(builder -> {
                    builder.author("wux") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir(System.getProperty("user.dir") + "/src/main/java"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.wux") // 设置父包名
                            .moduleName("platform") // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/resources/mapper")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder
                    		// 表前缀
                    		.likeTable(new LikeTable("wux_"))
                    		.serviceBuilder()
                            .convertServiceImplFileName((entityName) -> entityName + "Service")
                    		// 生成的entity过滤掉前缀
                    		.addTablePrefix("wux_");
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }

最后再执行一次代码,欸,就得到你想要的了
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MybatisPlus 3.5.1 代码生成器 自定义Service层 的相关文章

  • 如何实现 Eclipse 清理和构建(又名重建)?

    我删除了我的 binEclipse Indigo 中的文件夹 与 Helios 非常相似 现在我想知道如何重建我的 Java 项目 我只是找不到像 Netbeans 中那样的按钮 对于 Eclipse 您可以在下面找到重建选项项目 gt 清
  • Jackson反序列化SNS消息错误MismatchedInputException

    我正在编写一个通过 SNS HTTP 请求处理来自 Amazon Simple Email Service 的回调的功能 我想将亚马逊提供的消息解析为本地对象结构 问题是 SNS 将 JSON 消息包装成字符串 并且 Jackson 无法解
  • Firebase 实时数据库 .info/connected 本应为 True 时为 False

    我有一个 Android 服务 它的调用地址为onCreate FirebaseDatabase database FirebaseDatabase getInstance database getReference info connec
  • 如何制作具有两个索引的 Map?

    我在java中有一张这样的地图 Map
  • Java 延迟/等待

    如何将 while 循环延迟到 1 秒间隔 而不减慢其运行的整个代码 计算机的速度到一秒延迟 只是一个小循环 Thread sleep 1000 do nothing for 1000 miliseconds 1 second
  • 确定列表编号是否连续

    我在 Java 工作 我有一个无序列表 包含 5 个数字 范围从 0 100 没有重复 我想检测其中 3 个数字是否连续且没有间隙 例子 9 12 13 11 10 true 17 1 2 3 5 true 19 22 23 27 55 f
  • java.io.IOException: EnsureRemaining: 仅剩余 0 个字节,尝试读取 1

    我在 giraph 中的自定义类方面遇到一些问题 我制作了 VertexInput 和 Output 格式 但总是收到以下错误 java io IOException ensureRemaining Only bytes remaining
  • Java 增强型 For-Loop 比传统的更快?

    所以我的理解是 增强的 for 循环应该更慢 因为它们必须使用迭代器 但是我的代码提供了混合结果 是的 我知道循环逻辑占用了循环中花费的大部分时间 对于少量迭代 100 1000 增强的 for 循环在使用和不使用 JIT 的情况下似乎都要
  • 使用 Bouncy Castle 重建 ED25519 按键 (Java)

    Bouncy Castle 的最新 测试版 版本 bcprov jdk15on 161b20 jar 支持 ED25519 和 ED448 EC 加密以进行签名 我设置了这个完整的工作示例 它按预期工作 我的问题 我是否正确重建了私钥和公钥
  • 写入作为 Jar 文件中的资源包含的 Java 属性文件

    有没有办法修改作为资源存储在 Jar 文件中的属性文件中的属性值 这就是我正在尝试处理的场景 我有一个属性文件作为资源存储在我的 Jar 文件中 有一些系统特定的属性 例如路径 我希望能够为我想要运行 Jar 文件的系统更改此设置 最好的解
  • 使android listview布局可滚动

    我有一个 xml 文件 其布局为 ASCII 形式 ImageView TextView List
  • 如何从 Jackson 中的自定义解串器调用默认解串器

    我在杰克逊的自定义解串器有问题 我想访问默认序列化器来填充我要反序列化的对象 在填充之后 我将做一些自定义的事情 但首先我想使用默认的 Jackson 行为反序列化对象 这是我目前拥有的代码 public class UserEventDe
  • Spring Security登录返回404

    我目前正在使用 Spring 框架开发我的博客 我正在实现 Spring Security 用于登录目的 一切都按预期进行 直到我提交始终返回 404 代码的登录凭据 这是我的 web xml 代码e
  • JList 类型不采用参数类型

    当我尝试编译一些代码时 我不断收到这些错误 CCC java 21 type javax swing JList does not take parameters JList
  • JS 中的 .Jar 文件

    有谁知道如何在 JS 中访问 jar 文件 我已经用 Java 创建了类并作为 jar 文件导入 我想从 JS 文件访问该类 大家好 我感谢你们所有人 我尝试在 Firefox XUL 中使用 JS 列出文件夹中的文件 但我做不到 然后我决
  • 有没有办法防止 Spring Boot 覆盖 bean?

    与春天的抽象可刷新应用程序上下文 http docs spring io spring docs current javadoc api org springframework context support AbstractRefresh
  • 正确的单元测试技术

    在使用 TDD 时 我发现自己需要测试一个包含查找值的常量 最终 哈希图 请查看更新中出现这种情况的原因 见下文 private static final Map
  • 启动 Firefox 并等待其关闭

    Question 我想启动 Firefox 网络浏览器作为访问特定网站的过程 然后等到它关闭 一种特殊情况是浏览器可能已经打开并正在运行 因为用户可能已经访问过某个网站 在这种情况下 浏览器可能会在现有窗口中打开一个新选项卡 并且新启动的进
  • 自动将通配符导入重构为 IntelliJ 中的显式导入(适用于 Scala/Java)

    考虑下面的代码 是否可以让 IntelliJ 自动将每个通配符导入重构为显式导入 无论范围内使用什么 例如import scalatags JsDom all into import scalatags JsDom all ol li di
  • E/libEGL: validate_display:99 错误 3008 (EGL_BAD_DISPLAY) API 24 或更高版本

    当我使用 API 为 24 或更高版本的设备时 我收到此错误 E libEGL validate display 99 错误 3008 EGL BAD DISPLAY XML 代码 activity main xml

随机推荐

  • uni-app分享微信好友,朋友圈

    1 在mixin文件夹中创建一个 share js文件 export default data return 默认的全局分享内容 share title path 全局分享的路径 imageUrl 全局分享的图片 desc 定义全局分享 1
  • 【无人机】基于灰狼优化算法的无人机路径规划问题研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 随着各种新兴技术的发展 无人机在灾后救援
  • 数据挖掘按技能划分,主要分为几类?

    数据挖掘技能从起初的单一门类的知识逐步发展成为一门综合性的多学科知识 并由此产生了很多的数据挖掘方法 这些方法种类多 类型也有很大的差别 为了满足用户的实际需要 现对数据挖掘技能进行如下几种分类 按挖掘的数据库类型分类 利用数据库对数据分类
  • 使用Chrome浏览器自带命令对web页面进行截图,生产高质量图片

    在平时工作中 我们对浏览器的web页面截图有很多方法 无论是Windows还是Mac操作系统 都自带截图工具 但是 如果我们打开的web页面非常的大 我使用操作系统自带的截屏工具就力不从心了 因为我们的显示屏幕不能显示web页面的所有内容
  • react时间戳转换成需要格式

    后端返回前端日期时间 一般给你的都是时间戳 然后前端展示需要转换成需要格式 以下是我开发中常遇到需要转换成的格式 看代码 class DateApi 将输入的毫秒字符串or毫秒数转换成指定的字符串格式 param string msStr
  • 代码圈复杂度cogC、ev、iv、v分别是什么含义

    代码圈复杂度cogC ev iv v分别是什么含义 前言 cogC ev iv v分别是什么含义 优化这四个指标的好处 优化方法 过度优化的坏处 书本推荐 文章推荐 工具推荐 前言 你好 在工作中看项目的代码有时明明代码很长却觉得容易阅读
  • 未能加载文件或程序集“office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c”或它的某一个依赖项。拒绝访问

    未能加载文件或程序集 office Version 15 0 0 0 Culture neutral PublicKeyToken 71e9bce111e9429c 或它的某一个依赖项 拒绝访问 原因 office2013资源 原因 是因为
  • LeetCode基础-图-有向图-最短路径

    最短路径 从图中的一个顶点到另一个顶点的成本最小的路径 单点最短路径 在加权有向图中 给出一个起点 s 找到是否有一条到顶点 v 的路径 如果有 找出权重最小的那条 最短路径的性质 路径是有向的 权重不定表示距离 并不是所有顶点都是可达的
  • 【Javascript】数组拼接的两种方法

    数组拼接的两种方法 1 改变原数组 1 push 扩展运算法 1 不改变原数组 1 concat 2 扩展运算符 1 改变原数组 1 push 扩展运算法 利用push搭配扩展运算符的方法 arr2经过扩展运算符 由 3 4 5 变成3 4
  • 博途V11.0中如何编程模拟量转换步骤

    https blog csdn net u011402289 article details 90041534
  • MATLAB下配置C和C++编译器(MinGW)

    很多时候需要在Matlab下使用C或C 边写的代码 这时候就需要先用编译器将代码编译成Matlab可以用的mex文件 检测Matlab有没有可以使用的编译器 可以在命令行窗口下 输入mex setup 如果有的话就会显示出可以用的编译器 无
  • Python工程师常见的30个基础面试题

    一 Python 的特点和优点是什么 Python 是一门动态解释性的强类型定义语言 编写时无需定义变量类型 运行时变量类型强制固定 无需编译 在解释器环境直接运行 优点 1 解释性 Python 语言写的程序 不需要编译成二进制代码 可以
  • 【TVM 学习资料】使用 TVMC Python 入门:TVM 的高级 API

    本篇文章译自英文文档 Getting Starting using TVMC Python a high level API for TVM 作者是 Jocelyn Shiue 更多 TVM 中文文档可访问 TVM 中文站 本节将介绍针对
  • 启动VMware虚拟机显示:物理内存不足无法使用的五种解决方法

    http www jb51 net os other 267942 html 打开虚拟机时提示报错 物理内存不足 无法使用配置的设置开启虚拟机 解决方法如下 以下针对 Windows 8 1 的主机环境 Win7 也可能适用 方法一 1 打
  • 如何在MAC上使用VOSviewer和Pajek

    因为要写文献综述的原因 在看其他文献的时候被安利了VOSviewer和Pajek 在Window上操作是非常简单的 但是因为是MAC系统的原因 而这两个APP其实都是Window系统上的 在安装和绘图的时候出现了很多困难 在这里记录一下也方
  • 蛇形矩阵(Java)

    题目描述 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形 输入 本题有多组数据 每组数据由一个正整数N组成 N不大于100 输出 对于每一组数据 输出一个N行的蛇形矩阵 两组输出之间不要额外的空行 矩阵三角中同一行的数字用一个空格分
  • stm32 NVIC中断优先级管理

    对于中断这个概念 我喜欢用经常发生在CPU中的多线程抢占执行现象来类比 每个中断 或者说中断服务 就像是一个线程 它们根据事先定义好的运行规则运作着 所以这就引出了如何管理中断 我们应如何确定哪个中断先执行 哪个后执行 1 NVIC中断优先
  • Deepin如何添加阿里源

    进入阿里开源镜像站 https opsx alibaba com mirror 找到deepin 点击右侧的帮助 出现如下图所示界面 打开终端 输入 sudo vim etc apt sources list 点击键盘上的 insert键
  • 浅谈 vue组件传值

    一般有三种传值方式 1 父传子 2 子传父 3 兄弟组件之间通信 1 父组件向子组件传值 一般会在子组件里面定义props来做接收 这是比较常见的情况 这是父组件
  • MybatisPlus 3.5.1 代码生成器 自定义Service层