# mybatis-plus-code-generator-demo **Repository Path**: shudaye/mybatis-plus-code-generator-demo ## Basic Information - **Project Name**: mybatis-plus-code-generator-demo - **Description**: mybatis-plus 代码生成器,基于官方mybatis-plus-generator-starter 3.5.2. 支持 controller级 CRUD代码自动生成 (Controller/Service/Dao/Xml) - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-05-23 - **Last Updated**: 2024-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: mybatis-plus, Java, 代码生成器, CRUD ## README # mybatis-plus-code-generator-demo #### 介绍 **mybatis-plus 代码生成器,基于官方mybatis-plus-generator-starter 3.5.2. 支持 controller级 CRUD代码自动生成** #### - 不浪费大家时间,直接看生成代码的demo :+1: - controller.java如下: ```java /** * 分页查询 * * @param query * @return Result */ @ApiOperation(value = "分页查询", notes = "分页查询") @GetMapping("/page") public ApiResult>getRuninfoPage(RuninfoQuery query){ RuninfoDO runinfo = mapperFacade.map(query, RuninfoDO.class); return ApiResult.newInstance(runinfoService.page(query.toPage(), Wrappers.query(runinfo))); } /** * 列表查询-不分页 * * @param query * @return Result */ @ApiOperation(value = "列表查询", notes = "列表查询") @GetMapping("/getList") public ApiResult>getRuninfoList(RuninfoQuery query){ RuninfoDO runinfo = mapperFacade.map(query, RuninfoDO.class); QueryWrapper ew = Wrappers.query(runinfo); ew.last(null != query.getListLimit(), "limit " + query.getListLimit()); return ApiResult.newInstance(runinfoService.list(ew)); } /** * 通过id查询运行时信息 * * @param id id * @return Result */ @ApiOperation(value = "通过id查询", notes = "通过id查询") @GetMapping("/getById") public ApiResult getById(@RequestParam Long id){ return ApiResult.newInstance(runinfoService.getById(id)); } /** * 新增运行时信息 * * @param runinfo 运行时信息 * @return Result */ @ApiOperation(value = "新增运行时信息", notes = "新增运行时信息") @PostMapping("/save") public ApiResult save(@RequestBody RuninfoDO runinfo){ return ApiResult.newInstance(runinfoService.save(runinfo)); } /** * 修改运行时信息 * * @param runinfo 运行时信息 * @return Result */ @ApiOperation(value = "修改运行时信息", notes = "修改运行时信息") @PostMapping("updateById") public ApiResult updateById(@RequestBody RuninfoDO runinfo){ return ApiResult.newInstance(runinfoService.updateById(runinfo)); } /** * 通过id删除运行时信息 * * @param id id * @return Result */ @ApiOperation(value = "通过id删除 运行时信息", notes = "通过id删除运行时信息") @PostMapping("/removeById") public ApiResult removeById(@RequestParam Long id){ return ApiResult.newInstance(runinfoService.removeById(id)); } ``` #### 使用说明 ##### 修改代码生成配置 - 直接修改 com.chaomian.generator.MybatisPlusCodeGenerator 中的: - 数据库配置信息 - 包路径 - 自定义包名 - 其他具体配置请参考官方: https://baomidou.com/pages/981406/ ##### 直接执行main方法就能在项目根目录下的code_generator目录找到生成的代码,拷贝到项目中 - 由于crud依赖了一些通用父类,拷贝到的项目需依赖 mybatis-plus-starter 模块 - 代码中使用到对象通用拷贝三方插件mapperFacde,可以引入,如果不想使用MapperFacade,相关代码请修改为其他对象拷贝方式 - 项目pom中引入: ```xml ma.glasnost.orika orika-core 1.5.4 ``` - 配置类 ```java @Configuration public class MapperFacadeConfig{ /**对象属性拷贝**/ @Primary @Bean(name = "mapperFacade") public MapperFacade mapperFacade() { MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build(); return mapperFactory.getMapperFacade(); } } ``` ##### 修改模板或者自定义模块 - 模板位置: mybatis-plus-generator/src/main/resources/templates - 如果还想要添加其他自定义代码模板,请参考项目中的dto和query模板的自定义添加方法