springboot mybatis-plus 逆向工程
开发环境搭建
- Springboot v3.1.4
- mybatis-plus v3.5.3.2
- mybatis-plus-boot-starter
- mybatis-plus-generator
- Apache FreeMarker v2.3.32
- mysql
- mysql-connector-j v8.1.0(是MySQL提供的JDBC驱动包)
- dynamic-datasource-spring-boot-starter v4.1.3 (是一个基于springboot的快速集成多数据源的启动器)
创建spring boot项目并添加依赖
①、添加mybatis-plus依赖

<!-- mybatis-plus-boot-starter 启动器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.2</version> </dependency> <!-- mybatis-plus-generator 代码生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.3.2</version> </dependency> <!-- freemarker 生成器使用的模板 --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.32</version> </dependency>
②、添加Mysql相关依赖

1 <!-- dynamic-datasource-spring-boot-starter --> 2 <dependency> 3 <groupId>com.baomidou</groupId> 4 <artifactId>dynamic-datasource-spring-boot-starter</artifactId> 5 <version>4.1.3</version> 6 </dependency> 7 8 <!-- mysql-connector-j 提供jdbc --> 9 <dependency> 10 <groupId>com.mysql</groupId> 11 <artifactId>mysql-connector-j</artifactId> 12 <version>8.1.0</version> 13 </dependency>
③、配置数据

1 spring: 2 datasource: 3 dynamic: 4 # 配置默认数据源 5 primary: primary 6 datasource: 7 # 数据源-1,名称为 primary 8 primary: 9 username: 用户名 10 password: 密码 11 driver-class-name: com.mysql.cj.jdbc.Driver 12 url: jdbc:mysql://127.0.0.1:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
④、将官网代码Copy,修改为我所用

1 FastAutoGenerator.create(URL, USERNAME, PASSWORD) 2 .globalConfig(builder -> { 3 builder.author("MARW") // 设置作者 4 //.enableSwagger() // 开启 swagger 模式 5 //.fileOverride() // 覆盖已生成文件(高版本已经弃用) 6 .outputDir("D://"); // 指定输出目录 7 }) 8 .dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> { 9 int typeCode = metaInfo.getJdbcType().TYPE_CODE; 10 if (typeCode == Types.SMALLINT) { 11 // 自定义类型转换 12 return DbColumnType.INTEGER; 13 } 14 return typeRegistry.getColumnType(metaInfo); 15 16 })) 17 .packageConfig(builder -> { 18 builder.parent("com.marw") // 设置父包名 19 .moduleName("system") // 设置父包模块名 20 .pathInfo(Collections.singletonMap(OutputFile.xml, "D://")); // 设置mapperXml生成路径 21 }) 22 .strategyConfig(builder -> { 23 builder.addInclude("t_user") // 设置需要生成的表名 24 .addTablePrefix("t_", "c_"); // 设置过滤表前缀 25 }) 26 .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 27 .execute();
简单的代码生成器就完成了,但是我们代码生成的模板是mybatis-plus-generator中模板,如果想自定义的话就需要怎么做呢???
自定义代码生成模板
①、查看mybatis-plus-generator中的模板
②、将所有模板都Copy到resources下
③、指定模板
具体代码如下:
.templateConfig(builder -> { builder.xml("generator/templates/mapper.xml") .mapper("generator/templates/mapper.java") .entity("generator/templates/entity.java") .service("generator/templates/service.java") .serviceImpl("generator/templates/serviceImpl.java") .controller("generator/templates/controller.java"); })
此时测试会有问题
①、不允许覆盖文件
解决方案:需要对每一个生成代码都添加运行覆盖的配置
②、可能会出现找不到模板,首先查看是不是配置的路径是否有问题
分类:
mybatis
, springboot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2022-10-19 Nacos、Nginx、Feign、Gateway开发思路