在使用代码生成器的时候可以自定义controller模板
在resource->templates包下 创建controller.java.vm,放到该文件下自动生效
这个文件也可以找mp的generator文件里面找,然后再自己进行改造
这里举例添加几个常见方法
controller.java.vm如下
package ${package.Controller};
import org.springframework.web.bind.annotation.RequestMapping;
//增加entity对应的包
import ${package.Entity}.${entity};
#if(${restControllerStyle})
import org.springframework.web.bind.annotation.RestController;
#else
import org.springframework.stereotype.Controller;
#end
#if(${superControllerClassPackage})
import ${superControllerClassPackage};
#end
/**
* <p>
* $!{table.comment} 前端控制器
* </p>
*
* @author ${author}
* @since ${date}
*/
#if(${restControllerStyle})
@RestController
#else
@Controller
#end
@RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end")
#if(${kotlin})
class ${table.controllerName}#if(${superControllerClass}) : ${superControllerClass}()#end
#else
#if(${superControllerClass})
public class ${table.controllerName} extends ${superControllerClass} {
#else
public class ${table.controllerName} {
#end
@Resource
private ${table.serviceName} ${table.entityPath}Service;
// 新增或者更新
@PostMapping
public Result save(@RequestBody ${entity} ${table.entityPath}){
${table.entityPath}Service.saveOrUpdate(${table.entityPath});
return Result.success();
}
//通过id删除
@DeleteMapping("/{id}")
public Result delete(@PathVariable Integer id) {
${table.entityPath}Service.removeById(id);
return Result.success();
}
//批量删除
@PostMapping("/del/batch")
public Result deleteBatch(@RequestBody List<Integer> ids) {
${table.entityPath}Service.removeByIds(ids);
return Result.success();
}
//查全部
@GetMapping
public Result findAll() {
return Result.success(${table.entityPath}Service.list());
}
//通过id查
@GetMapping("/{id}")
public Result findOne(@PathVariable Integer id) {
return Result.success(${table.entityPath}Service.getById(id));
}
//分页查询
@GetMapping("/page")
public Result findPage(@RequestParam Integer pageNum,
@RequestParam Integer pageSize) {
//QueryWrapper是增加条件查询
QueryWrapper<${entity}> queryWrapper = new QueryWrapper<>();
//按id降序排序
queryWrapper.orderByDesc("id");
return Result.success(${table.entityPath}Service.page(new Page<>(pageNum, pageSize), queryWrapper));
}
}
#end
生成后的usercontroller如下
package com.example.mybatis_plus_generator.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.mybatis_plus_generator.common.Result;
import com.example.mybatis_plus_generator.service.IUserService;
import org.springframework.web.bind.annotation.*;
//增加entity对应的包
import com.example.mybatis_plus_generator.entity.User;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author
* @since 2023-07-31
*/
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private IUserService userService;
// 新增或者更新
@PostMapping
public Result save(@RequestBody User user){
userService.saveOrUpdate(user);
return Result.success();
}
//通过id删除
@DeleteMapping("/{id}")
public Result delete(@PathVariable Integer id) {
userService.removeById(id);
return Result.success();
}
//批量删除
@PostMapping("/del/batch")
public Result deleteBatch(@RequestBody List<Integer> ids) {
userService.removeByIds(ids);
return Result.success();
}
//查全部
@GetMapping
public Result findAll() {
return Result.success(userService.list());
}
//通过id查
@GetMapping("/{id}")
public Result findOne(@PathVariable Integer id) {
return Result.success(userService.getById(id));
}
//分页查询
@GetMapping("/page")
public Result findPage(@RequestParam Integer pageNum,
@RequestParam Integer pageSize) {
//QueryWrapper是增加条件查询
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//按id降序排序
queryWrapper.orderByDesc("id");
return Result.success(userService.page(new Page<>(pageNum, pageSize), queryWrapper));
}
}