目录
前言
本次学习还是基于上一篇mybatis的学习代码。今天来学习mybatis-plus,他的作用如下:
1.单表增删改查方法封装
2.代码生成器
3.条件构造器(拼接条件查询)
4.分页
一、增删改查
1.安装Mybatis-Plus
导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
修改application配置文件
2.创建一个student表
3.实体类
创建一个实体类
4.Mapper层
(1)建立一个StudentMapper
它要继承BaseMapper<Student>,方法已封装了,里面可以不用写内容。
(2)创建一个StudentMapper配置文件
里面也可以什么都不用写,但要创建
5.service层
同理
6.controller层
controller层还是要自己写的,创建一个StudentController类
(1)全部查询
创建对应的student.html文件
得到
(2)增加
创建对应的addstudent.html文件
得到
(3)删除
对应的studentlist.html文件
得到
(4)改
对应的studentlist.html文件
新建立一个updatestudent.html文件
得到
三、代码生成器
1.导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
2.创建一个GenerateCode类
package com.example.springboot2.utils;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import java.util.Collections;
public class GenerateCode {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/class?serverTimezone=UTC", "root", "123456")
.globalConfig(builder -> {
builder.author("石敏") // 设置作者
.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("C://Users//yim//Desktop"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.example.springboot2") // 设置父包名
.moduleName("product") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "C://Users//yim//Desktop")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("product1") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
// .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
就能自动生成controller、entity、mapper、service类
三、条件构造器
mybatis-plus不能直接实现按条件查询,需要创建一个条件构造器对象
如图所示,eq表示name=“test”的条件,like就是模糊查询,
得到结果
四、分页
查询到的结果很多,不能直接全部显示,会很慢
这样分页显示就能解决这个问题了
如何分页
但其实这样还不行,还需要一个拦截器,如图所示,建立一个类
他的内容如下
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
return paginationInterceptor;
}
}
得到结果