news 2026/7/7 11:59:53

MyBatis-Plus代码生成器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis-Plus代码生成器

MyBatis-Plus代码生成器

  • MyBatis-Plus代码生成器
  • 生成结果

MyBatis-Plus 代码生成器是 MP 提供的自动化代码生成工具,核心是基于数据库表结构,通过配置一键生成符合 MP 规范的全套分层代码(包含实体类、Mapper 接口、Mapper XML、Service 层、Controller 层),旨在替代手动编写重复的 CRUD 基础代码,聚焦业务逻辑开发,大幅提升开发效率。

MyBatis-Plus代码生成器

引入 MyBatis-Plus 代码生成器和 Freemarker 模板引擎的核心功能包

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

mybatis-plus-generator 是 MyBatis-Plus 官方提供的代码生成器核心依赖,是实现自动化代码生成的基础引擎,承载生成器的全生命周期核心逻辑;
freemarker 提供 Freemarker 模板引擎的核心解析能力,支持解析符合 Freemarker 语法的代码模板,接收 mybatis-plus-generator 传递的数据库表元数据,将数据填充至模板的指定位置,完成代码内容的动态渲染;输出标准化的代码文件,保证生成代码的语法合法性与结构一致性。

快速代码生成器

publicclassFastAutoGeneratorTest{publicstaticvoidmain(String[]args){FastAutoGenerator.create("jdbc:mysql://127.0.0.1:3306/mybatis_plus?characterEncoding=utf-8&useSSL=false","root","root")//全局配置.globalConfig(builder->{builder.author("qcby")// 设置作者//.enableSwagger() // 开启 swagger 模式.fileOverride()// 覆盖已生成文件.outputDir("D://mybatis_plus");// 指定输出目录})//设置包的.packageConfig(builder->{builder.parent("com.qcby")// 设置父包名.moduleName("mybatisPlus")// 设置父包模块名.pathInfo(Collections.singletonMap(OutputFile.mapperXml,"D://mybatis_plus"));// 设置mapperXml生成路径})//策略的配置.strategyConfig(builder->{builder.addInclude("user");// 设置需要生成的表名//.addTablePrefix("t_", "c_"); // 设置过滤表前缀 可以设置多个值}).templateEngine(newFreemarkerTemplateEngine())// 使用Freemarker引擎模板,默认的是Velocity引擎模板//.execute()执行的意思.execute();}}

首先通过 FastAutoGenerator.create() 初始化数据源,传入 mybatis_plus 数据库的 JDBC 连接 URL、用户名和密码;接着通过 globalConfig 配置全局参数,设置作者、开启文件覆盖模式、指定代码输出根目录(还可可选开启 Swagger 注解生成);然后通过 packageConfig 定义代码包结构,设置父包、模块名,pathInfo 用于自定义特定文件的输出路径;再通过 strategyConfig 指定生成规则,之后指定使用 Freemarker 模板引擎(替代默认的 Velocity),最后调用 execute() 执行生成操作,最终会在指定输出目录下生成对应包结构的 MP 标准化全套代码文件。

执行快速代码生成器日志:

补充策略配置内容,主要分为表范围配置和各层代码生成策略两部分
下面代码只是为解释策略配置的示范,我并未加入到 FastAutoGeneratorTest 中执行

.strategyConfig(builder->{// 1. 表相关配置(必配)builder.addInclude("user","order")// 指定生成代码的表名(多表用逗号分隔).addTablePrefix("t_","sys_")// 表前缀过滤(自动去掉前缀,如t_user生成User实体).addExclude("test")// 排除不需要生成的表(与addInclude互斥)// 2. 实体类生成策略.entityBuilder().enableLombok()// 生成Lombok注解.idType(IdType.AUTO)// 主键策略.columnNaming(NamingStrategy.underline_to_camel)// 数据库字段下划线转驼峰(默认开启).enableTableFieldAnnotation()// 为实体字段添加@TableField注解.logicDeleteColumnName("is_deleted")// 逻辑删除字段(生成对应注解).versionColumnName("version")// 乐观锁字段(生成@Version注解)// 3. Mapper层生成策略.mapperBuilder().enableMapperAnnotation()// 为Mapper接口添加@Mapper注解.enableBaseResultMap()// 生成BaseResultMap(XML中通用结果映射).enableBaseColumnList()// 生成BaseColumnList(XML中通用字段列表)// 4. Service层生成策略.serviceBuilder().formatServiceFileName("%sService")// Service接口命名规则.formatServiceImplFileName("%sServiceImpl")// Service实现类命名// 5. Controller层生成策略.controllerBuilder().enableRestStyle()// 生成@RestController(替代@Controller).enableHyphenStyle()// URL驼峰转连字符.formatFileName("%sController")// Controller命名规则})

生成结果

D:\mybatis_plus 目录下:

D:\mybatis_plus\com\qcby\mybatisPlus 目录下:





版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 8:21:14

德意志飞机莱比锡总装线封顶庆典圆满举行 加速D328eco产业化进程

2025年11月14日&#xff0c;德意志飞机公司携手威尔茨集团&#xff08;WeertsGroup&#xff09;&#xff0c;于莱比锡/哈勒机场为其新一代先进总装线隆重举办封顶庆典。此次活动不仅标志着40座涡桨飞机D328eco?产业化进程迈入关键节点&#xff0c;更彰显了德国在可持续支线飞机…

作者头像 李华
网站建设 2026/7/7 11:44:24

3个惊人发现!用闲鱼自动化工具让二手交易效率提升300%

3个惊人发现&#xff01;用闲鱼自动化工具让二手交易效率提升300% 【免费下载链接】xianyu_automatize [iewoai]主要用于实现闲鱼真机自动化&#xff08;包括自动签到、自动擦亮、统计宝贝数据&#xff09; 项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_automatize …

作者头像 李华
网站建设 2026/7/6 14:33:31

Wan2.2-T2V-A14B能否生成符合ADA标准的公共信息视频

Wan2.2-T2V-A14B能否生成符合ADA标准的公共信息视频 在城市轨道交通站台&#xff0c;一条紧急疏散通知需要在30分钟内推送到全市500个电子屏。传统流程中&#xff0c;这涉及文案撰写、视频拍摄、配音剪辑、字幕嵌入和多轮合规审查——至少耗时两天。但如果系统能在输入文本后自…

作者头像 李华
网站建设 2026/7/6 19:40:55

控制系统仿真:从水箱水位到倒立摆的探索

MATLAB仿真simulink水箱水位控制器设置pid 源码&#xff0b;报告 倒立摆控制器设置 源码&#xff0b;报告在控制系统的学习与实践中&#xff0c;MATLAB 的 Simulink 是一款强大的工具&#xff0c;它能帮助我们直观地搭建模型并进行仿真分析。今天咱们就来聊聊水箱水位控制器和倒…

作者头像 李华
网站建设 2026/7/7 6:31:45

【OD刷题笔记】- 分糖果

📌 华为OD机试真题精选 2025B卷合集 分糖果 问题描述 小明从糖果盒中随意抓一把糖果,每次小明会取出一半的糖果分给同学们。 当糖果不能平均分配时,小明可以选择从糖果盒中(假设盒中糖果足够)取出一个糖果或放回一个糖果。 小明最少需要多少次(取出、放回和平均分配…

作者头像 李华
网站建设 2026/7/7 12:38:43

线性回归+实例

线性回归是统计学和机器学习中最基础的回归分析方法&#xff0c;核心目标是构建自变量&#xff08;特征&#xff09;与连续型因变量&#xff08;标签&#xff09;之间的线性关系模型&#xff0c;通过拟合最优直线 / 超平面&#xff0c;实现对连续值的预测。以下是从核心定义到应…

作者头像 李华