Mybatis-Plus自动生成代码,自定义Controller

mybatis-plus 的官网:https://baomidou.com/

1、安装

  • mp的依赖
<!-- 代码生成器 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity</artifactId>
    <version>1.7</version>
</dependency>

MP网址:https://baomidou.com/pages/779a6e/#%E4%BD%BF%E7%94%A8

2.CodeGenerator.java

在这里插入图片描述
在这里插入图片描述

package com.xiao.utils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.Collections;

public class CodeGenerator {
    
    
    public static void main(String[] args) {
    
    
        generate();
    }

    private static void generate() {
    
    
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/tests?useUnicode=true&characterEncoding=UTF-8&useSSL=false" +
                "&serverTimezone=UTC&serverTimezone=GMT%2b8", "root", "123456")
                .globalConfig(builder -> {
    
    
                    builder.author("xiaxiao") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .outputDir("D:\\code\\javacode\\springboot\\houduan\\hou2\\src\\main\\java\\"); // 指定输出目录
                })
                .packageConfig(builder -> {
    
    
                    builder.parent("com.xiao") // 设置父包名
                            .moduleName(null) // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,
                                    "D:\\code\\javacode\\springboot\\houduan\\hou2\\src\\main\\resources\\mapper\\")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
    
    
                    //lobok插件
//                    builder.entityBuilder().enableLombok();
                    // //加 mapper 注解
//                    builder.mapperBuilder().enableMapperAnnotation().build();
                    builder.controllerBuilder().enableHyphenStyle()  // 开启驼峰转连字符
                            .enableRestStyle();  // 开启生成@RestController 控制器
                    builder.addInclude("sys_user") // 设置需要生成的表名
                            .addTablePrefix("t_", "sys_"); // 设置过滤表前缀
                })
               //.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();

    }
}

  • 生成后的框架
    在这里插入图片描述

3.自定义Controller模板:

在这里插入图片描述
在这里插入图片描述

  • 原本控制模板就只生成这样
    在这里插入图片描述
package ${
    
    package.Controller};


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import ${
    
    package.Service}.${
    
    table.serviceName};
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 boolean save(@RequestBody ${
    
    entity} ${
    
    table.entityPath}) {
    
    
            return ${
    
    table.entityPath}Service.saveOrUpdate(${
    
    table.entityPath});
            }

    //删除
    @DeleteMapping("/{id}")
    public Boolean delete(@PathVariable Integer id) {
    
    
            return ${
    
    table.entityPath}Service.removeById(id);
            }
     //多项删除
    @PostMapping("/del/batch")
    public boolean deleteBatch(@RequestBody List<Integer> ids) {
    
    
            return ${
    
    table.entityPath}Service.removeByIds(ids);
            }
    //查询所有数据
    @GetMapping
    public List<${
    
    entity}> findAll() {
    
    
            return ${
    
    table.entityPath}Service.list();
            }
    //根据id查询
    @GetMapping("/{id}")
    public ${
    
    entity} findOne(@PathVariable Integer id) {
    
    
            return ${
    
    table.entityPath}Service.getById(id);
            }
    //分页查询
    @GetMapping("/page")
    public Page<${
    
    entity}> findPage(@RequestParam Integer pageNum,
    @RequestParam Integer pageSize) {
    
    
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            queryWrapper.orderByDesc("id");
            return ${
    
    table.entityPath}Service.page(new Page<>(pageNum, pageSize), queryWrapper);
            }

            }

#end

  • UserController.java
    在这里插入图片描述
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.xiao.service.IUserService;
import com.xiao.entity.User;

import org.springframework.stereotype.Controller;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author xiaxiao
 * @since 2022-05-27
 */
@RestController
@RequestMapping("/user")
public class UserController {
    
    

    @Resource
    private IUserService userService;

    // 新增或者更新
    @PostMapping
    public boolean save(@RequestBody User user) {
    
    
            return userService.saveOrUpdate(user);
            }

    //删除
    @DeleteMapping("/{id}")
    public Boolean delete(@PathVariable Integer id) {
    
    
            return userService.removeById(id);
            }
     //多项删除
    @PostMapping("/del/batch")
    public boolean deleteBatch(@RequestBody List<Integer> ids) {
    
    
            return userService.removeByIds(ids);
            }
    //查询所有数据
    @GetMapping
    public List<User> findAll() {
    
    
            return userService.list();
            }
    //根据id查询
    @GetMapping("/{id}")
    public User findOne(@PathVariable Integer id) {
    
    
            return userService.getById(id);
            }
    //分页查询
    @GetMapping("/page")
    public Page<User> findPage(@RequestParam Integer pageNum,
                                 @RequestParam Integer pageSize,
                               @RequestParam(defaultValue = "") String username,
                               @RequestParam(defaultValue = "") String email,
                               @RequestParam(defaultValue = "") String address) {
    
    
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            if (!"".equals(username)) {
    
    
                queryWrapper.like("username", username);
            }
            if (!"".equals(email)) {
    
    
                queryWrapper.like("email", email);
            }
            if (!"".equals(address)) {
    
    
                queryWrapper.like("address", address);
            }
            queryWrapper.orderByDesc("id");
            return userService.page(new Page<>(pageNum, pageSize), queryWrapper);
            }

            }

猜你喜欢

转载自blog.csdn.net/weixin_44953928/article/details/125009543