当前位置: 首页 > news >正文

SpringBoot学习日记——DAY07(mybatis-plus代码生成器)

今天对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配置
http://www.zskr.cn/news/1409243.html

相关文章:

  • 深度解析:SPI 多设备挂载场景下的隐形陷阱
  • 国产AI大模型综合能力全球排行 - 20260527期
  • ChatGPT直播话术设计避坑指南:97%新手踩中的5个认知陷阱及即时修正话术模板
  • 保姆级教程:在AMD锐龙电脑上用VMware 16.2.5搞定macOS BigSur虚拟机(附最新unlocker工具包)
  • LeetCode 98:验证二叉搜索树 | 中序遍历
  • 手写奇偶分频(上)
  • 别再死记公式了!用‘投影’的视角,5分钟彻底搞懂条件期望(附Python代码示例)
  • ChatGPT简历优化不是“润色”,而是“人岗智能映射”——基于127份真实Offer Letter的NLP特征建模实践
  • 全球ChatGPT竞品格局突变:Claude 4、Gemini 2.5、Kimi+DeepSeek四强市占率重排(附6个月追踪数据表)
  • 2026网文圈变天?实测国内12款AI写小说平台硬核盘点(建议收藏)
  • 观测对比使用Taotoken前后大模型API调用的平均延迟与稳定性体感
  • 仅限前500名开放:ChatGPT视频脚本写作「反模板」训练营(含独家「人设温度值」校准表)
  • 品牌设计全案使用后交付偏差先分阶段确认验收标准
  • 护眼落地灯哪款好?2026全网畅销品牌出炉,性能护眼双在线!
  • AI伦理声明全链路拆解,从技术事实陈述到公众情绪锚点设计——ChatGPT声明的12个隐藏结构模块
  • 地图API对比:高德、百度、腾讯、天地图、迈云LTS
  • 车道保持辅助(LKA)全解析:从原理到产业,一篇读懂智能驾驶基石
  • 别再手动写300条宾客备注!ChatGPT婚礼策划辅助的隐私计算引擎:GDPR/《个保法》双认证数据沙箱实录
  • ChatGPT心理支持的5道生死红线,99%开发者不知道第3条违反《精神卫生法》第23条实施细则
  • 传奇 3 光通版 5 月 27 日开服公告:承影区 13:00 启航,正版 1.45 复刻 + 元素打金全攻略
  • 车规MCU功能安全设计全解析 | 全网独家复现篇 | 三种安全状态机制、SBC协同深度防御、助力ASIL-D最高安全合规、EPS/BMS/AEB全场景量产落地与工程化代码实现
  • STM32F103串口非阻塞收发
  • 2026年最新:论文AI率从60%降至5%实测,10款降AI工具与手改技巧指南 - 降AI实验室
  • 《B4450 [GESP202512 三级] 小杨的智慧购物》
  • 消费类平台“四边商业模型”:激活县域经济增长的新范式
  • PL2303老芯片驱动终极解决方案:3步让Windows 10/11完美识别串口设备
  • 用ESP32C3和PCM5102A做个高音质小DAC:手把手教你焊接、配置I2S,告别底噪
  • 2026年5月更新:宜兴有名的硝化菌公司深度剖析,聚焦宜兴橡树 - 2026年企业资讯
  • 护眼台灯哪个牌子的性价比高?家长公认性价比护眼灯品牌,不踩雷
  • 古典舞在线交流平台的设计与实现(源码+论文)