欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > springboot3.x集成mybatis-plus代码生成工具

springboot3.x集成mybatis-plus代码生成工具

2025/12/3 6:49:54 来源:https://blog.csdn.net/LDY1016/article/details/142848395  浏览:    关键词:springboot3.x集成mybatis-plus代码生成工具

一、添加mybatis-plus和代码生成器相关依赖包

        <!-- mybatis plus --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.5</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-support</artifactId><version>2.3.3</version></dependency><!-- mybatis plus 代码生成器依赖 --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.5</version></dependency><!-- 代码生成器模板 --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId></dependency>

二、代码生成工具类

package com.example.demo.mybatis.tool;import java.sql.Types;
import java.util.Collections;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;/*** @author lidongyang* @date 2024/10/10 15:05* @since V1.0.0*/
public class MysqlGenerator {public static void main(String[] args) {String url ="jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";String username = "root";String password = "1234567";// 获取当前项目路径String projectPath = System.getProperty("user.dir");FastAutoGenerator.create(url, username, password)// 全局配置.globalConfig(builder -> {builder// .enableSwagger() // 是否启用swagger注解.author("ldy") // 作者名称.dateType(DateType.ONLY_DATE) // 时间策略.commentDate("yyyy-MM-dd") // 注释日期.outputDir(projectPath + "/src/main/java") // 输出目录.disableOpenDir(); // 生成后禁止打开所生成的系统目录})// java和数据库字段的类型转换.dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {int typeCode = metaInfo.getJdbcType().TYPE_CODE;if (typeCode == Types.SMALLINT || typeCode == Types.TINYINT) {// 自定义类型转换return DbColumnType.INTEGER;}return typeRegistry.getColumnType(metaInfo);}))// 包配置.packageConfig(builder -> {builder.parent("com.example.demo") // 父包名// .moduleName("task") // 模块包名.controller("controller").entity("pojo.domain") // 实体类包名.service("service") // service包名.serviceImpl("service.impl") // serviceImpl包名//.mapper("mapper") // mapper包名.xml("mapper.xml").pathInfo(Collections.singletonMap(OutputFile.xml,projectPath + "/src/main/resources/mapper")).build();})// 策略配置.strategyConfig(builder -> {builder.enableCapitalMode()// 驼峰.enableSkipView()// 跳过视图.disableSqlFilter()// .addTablePrefix("t_") // 增加过滤表前缀// .addTableSuffix("_db") // 增加过滤表后缀// .addFieldPrefix("t_") // 增加过滤字段前缀// .addFieldSuffix("_field") // 增加过滤字段后缀.addInclude("table111") // 你的表名称// Entity 策略配置.entityBuilder().enableFileOverride().enableLombok() // 开启lombok.enableChainModel() // 链式.enableRemoveIsPrefix() // 开启boolean类型字段移除is前缀.enableTableFieldAnnotation() // 开启生成实体时生成的字段注解.versionColumnName("version") // 乐观锁数据库字段.versionPropertyName("version") // 乐观锁实体类名称.logicDeleteColumnName("delflag") // 逻辑删除数据库中字段名.logicDeletePropertyName("delFlag") // 逻辑删除实体类中的字段名.naming(NamingStrategy.underline_to_camel) // 表名 下划线 -》 驼峰命名.columnNaming(NamingStrategy.underline_to_camel) // 字段名 下划线 -》 驼峰命名.idType(IdType.ASSIGN_ID) // 主键生成策略 雪花算法生成id.formatFileName("%s") // Entity 文件名称// .addTableFills(new Column("create_time", FieldFill.INSERT)) // 表字段填充// .addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE)) // 表字段填充// .enableColumnConstant()// .enableActiveRecord()//MPlus中启用ActiveRecord模式,生成的实体类会继承activerecord.Model类,直接进行数据库操作// Controller 策略配置.controllerBuilder().enableFileOverride().enableHyphenStyle().enableRestStyle() // 开启@RestController.formatFileName("%sController") // Controller 文件名称// Service 策略配置.serviceBuilder().enableFileOverride().formatServiceFileName("%sService") // Service 文件名称.formatServiceImplFileName("%sServiceImpl") // ServiceImpl 文件名称// Mapper 策略配置.mapperBuilder().enableFileOverride().enableMapperAnnotation() // 开启@Mapper.enableBaseColumnList() // 启用 columnList (通用查询结果列).enableBaseResultMap() // 启动resultMap.formatMapperFileName("%sMapper") // Mapper 文件名称.formatXmlFileName("%sMapper"); // Xml 文件名称}).templateEngine(// 使用Freemarker引擎模板,默认的是Velocity引擎模板new FreemarkerTemplateEngine()).templateConfig(builder -> {builder.controller("/templates/controller.java").service("/templates/service.java").serviceImpl("/templates/serviceImpl.java")// .mapper().build();}).execute(); // 执行}}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词