mybatis-plus的demo
一、创建工程

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表

四、代码生成器
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中进行测试

2021-11-21 广州番禺