mybatis-plus的demo


一、创建工程

image-20211121202206499

generator:存放代码生成器

service:demo代码

二、POM文件配置

2.1 父POM

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.7
        
    
    com.xyp
    mybatis-plus-demo
    0.0.1-SNAPSHOT
    mybatis-plus-demo
    mybatis-plus-demo
    pom
    
        generator
        service
    
    
        1.8
        3.4.3.4
        3.5.1
        2.5.7
        1.18.22
        2.3.31
        2.7.0
    


    
        
            
                org.springframework.boot
                spring-boot-starter-jdbc
                ${spring.version}
            
            
                org.springframework.boot
                spring-boot-starter-web
                ${spring.version}
            
            
            
                mysql
                mysql-connector-java
                ${mysql.version}
                runtime
            
            
            
                com.baomidou
                mybatis-plus-boot-starter
                ${mybatis-plus.version}
            
            
            
                com.baomidou
                mybatis-plus-generator
                ${generator.version}
            
            
            
                org.freemarker
                freemarker
                ${freemarker.version}
            
            
            
                io.springfox
                springfox-swagger2
                ${swagger.version}
            
            
            
                io.springfox
                springfox-swagger-ui
                ${swagger.version}
            
            
                org.springframework.boot
                spring-boot-devtools
                runtime
                true
                ${spring.version}
            
            
                org.projectlombok
                lombok
                true
                ${lombok.version}
            
            
                org.springframework.boot
                spring-boot-starter-test
                test
                ${spring.version}
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            org.projectlombok
                            lombok
                        
                    
                
            
        
    
    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
            
                false
            
        
        
            spring-snapshots
            Spring Snapshots
            https://repo.spring.io/snapshot
            
                false
            
        
    
    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
            
                false
            
        
        
            spring-snapshots
            Spring Snapshots
            https://repo.spring.io/snapshot
            
                false
            
        
    



2.2 generator的pom

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0
    
        com.xyp
        mybatis-plus-demo
        0.0.1-SNAPSHOT
        
    
    com.xyp
    generator
    0.0.1-SNAPSHOT
    generator
    generator
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
        
            mysql
            mysql-connector-java
            runtime
        
        
        
            com.baomidou
            mybatis-plus-generator
        
        
        
            org.freemarker
            freemarker
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


2.3 service的pom

<?xml version="1.0" encoding="UTF-8"?>

    4.0.0
    
        com.xyp
        mybatis-plus-demo
        0.0.1-SNAPSHOT
         
    
    com.xyp
    service
    0.0.1-SNAPSHOT
    service
    service
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-jdbc
            ${spring.version}
        
        
            org.springframework.boot
            spring-boot-starter-web
            ${spring.version}
        
        
        
            mysql
            mysql-connector-java
            ${mysql.version}
            runtime
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            ${mybatis-plus.version}
        
        
        
            io.springfox
            springfox-swagger2
        
        
        
            io.springfox
            springfox-swagger-ui
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
            ${spring.version}
        
        
            org.projectlombok
            lombok
            true
            ${lombok.version}
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            ${spring.version}
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



三、新建数据库及表

创建一个demo数据库,创建一个p_user

image-20211121210728935

四、代码生成器

package com.xyp.generator;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
 * @description: 代码生成器
 * @author: XYP
 * @since: 2021/11/21 21:02
 * @history: 1.2021/11/21 created by XYP
 */
public class Generator {
    public static void main(String[] args) {
        List tables = new ArrayList<>();
        tables.add("p_user");

        FastAutoGenerator.create("jdbc:mysql://localhost:3306/demo", "root", "root")
                .globalConfig(builder -> {
                    builder.author("XYP")
                            .outputDir(System.getProperty("user.dir") + "\\service\\src\\main\\java")
                            .enableSwagger()
                            .commentDate("yyyy-MM-dd")
                            .fileOverride();
                })
                .packageConfig(builder -> {
                    builder.parent("com.xyp")
                            .moduleName("service")
                            .entity("entity")
                            .service("service")
                            .serviceImpl("serviceImpl")
                            .controller("controller")
                            .mapper("mapper")
                            .xml("mapper")
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "\\service\\src\\main\\resources\\mapper"));
                })
                .strategyConfig(builder -> {
                    builder.addInclude(tables)
                            .addTablePrefix("p_")
                            .serviceBuilder()
                            .formatServiceFileName("%sService")
                            .formatServiceImplFileName("%sServiceImpl")
                            .entityBuilder()
                            .enableLombok()
                            .logicDeleteColumnName("deleted")
                            .enableTableFieldAnnotation()
                            .controllerBuilder()
                            .formatFileName("%sController")
                            .enableRestStyle()
                            .mapperBuilder()
                            .superClass(BaseMapper.class)
                            .formatMapperFileName("%sMapper")
                            .enableMapperAnnotation()
                            .formatXmlFileName("%sMapper");
                })
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();

    }
}

五、在service的application.yml中配置数据库连接信息

server:
  port: 80
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
logging:
  level:
    root: info

六、在生成的controller暴露查询所有user的接口

package com.xyp.service.controller;


import com.xyp.service.entity.User;
import com.xyp.service.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 

* 前端控制器 *

* * @author XYP * @since 2021-11-21 */ @RestController @RequestMapping("/service/user") public class UserController { @Autowired private UserService userService; @GetMapping("/get") public List get(){ List users = userService.list(); return users; } }

七、在postman中进行测试

image-20211121213134722


2021-11-21 广州番禺