今天对MyBatis-Plus的代码生成器展开了学习1.使用MyBatis-Plus的代码生成器完成代码自动生成步骤如下1.1编写application.yml要在文件里编写上urlusernamepassword还有swagger的配置原则还有mybatis-plus的一些配置如日志等。spring: datasource: url: jdbc:mysql://localhost:3306/mybatis?serverTimezoneGMT%2B8 username: root password: dzx123123 mvc: pathmatch: matching-strategy: ant_path_matcher mybatis-plus: mapper-locations: classpath*:/mapper/**/*.xml type-aliases-package: com.djw.entity configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl1.2再编写一个测试单元用于开启代码生成器package com.djw; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; SpringBootTest class Day08DemoApplicationTests { Test void contextLoads() { FastAutoGenerator.create(jdbc:mysql://localhost:3306/mybatis?serverTimezoneGMT%2B8, root, 密码) .globalConfig(builder - { builder.author(djw) // 设置作者a .enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .outputDir(.\\src\\main\\java); // 指定输出目录 }) .packageConfig(builder - { builder.parent(com.djw) // 设置父包名 .moduleName();// 设置父包模块名 //.pathInfo(Collections.singletonMap(OutputFile.mapperXml, D://)); // 设置mapperXml生成路径 }) .strategyConfig(builder - { builder.addInclude(channel) // 设置需要生成的表名 .addTablePrefix() // 设置过滤表前缀 .entityBuilder().enableLombok() //开启lombok .enableChainModel()//开启链式编程 .controllerBuilder().enableRestStyle();//开启restController // .logicDeletePropertyName(deleted) // .logicDeleteColumnName(deleted);//配置逻辑删除处理 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板默认的是Velocity引擎模板 .execute(); } }1.3编写对应的Controllerpackage com.djw.controller; import com.djw.entity.Channel; import com.djw.service.IChannelService; import com.djw.util.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.swing.text.html.StyleSheet; import java.util.List; /** * p * 栏目表 前端控制器 * /p * * author djw * since 2026-05-27 */ RestController RequestMapping(/channel) Api(频道控制类) public class ChannelController { Autowired private IChannelService iChannelService; ApiOperation(查询列表) GetMapping public Result selectList(){ ListChannel list iChannelService.list(); return Result.success().setData(list,list); } ApiOperation(按id查询) GetMapping(/{id}) public Result selectById(PathVariable Integer id){ Channel byId iChannelService.getById(id); return byId!null?Result.success().setData(channel,byId):Result.error(); } ApiOperation(保存频道) PostMapping public Result insert(RequestBody Channel channel){ iChannelService.save(channel); return Result.success().setData(channel,channel); } PutMapping ApiOperation(更新频道) public Result update(RequestBody Channel channel){ boolean b iChannelService.updateById(channel); return b?Result.success().setData(channel,channel):Result.error(); } DeleteMapping ApiOperation(删除频道) public Result delete(RequestBody ListInteger ids){ boolean b iChannelService.removeByIds(ids); return b?Result.success().setData(channel,ids):Result.error(); } }1.4编写对应的所需的configswagger和自动填充的配置package com.djw.config; import io.swagger.annotations.ApiOperation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; /** * author djw */ Configuration public class SwaggerConfig { Bean public Docket apiConfig() { return new Docket(DocumentationType.OAS_30) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build(); } public ApiInfo apiInfo(){ return new ApiInfoBuilder() .title(董济维的项目) .description(这是一个项目...) .contact(new Contact(董济维,http://www.itszb.com,1918431841qq.com)) .version(1.0) .build(); } }package com.djw.config; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.time.LocalDateTime; // java example Slf4j Component public class MyMetaObjectHandler implements MetaObjectHandler { Override public void insertFill(MetaObject metaObject) { log.info(开始插入填充...); this.strictInsertFill(metaObject, updateTime, LocalDateTime.class,LocalDateTime.now()); this.strictInsertFill(metaObject, createTime, LocalDateTime.class, LocalDateTime.now()); } Override public void updateFill(MetaObject metaObject) { log.info(开始更新填充...); this.strictUpdateFill(metaObject, updateTime, LocalDateTime.class, LocalDateTime.now()); } }接下来就可以运行测试类的操作就好了2.使用MyBatisX来实现代码自动生成2.1在idea中完成数据库的配置2.2右键选用的表使用MyBatisX-Generator2.3配置