引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
Dao 层注解配置
Service层
ServiceImpl
domain中实体类的具体配置
在yml中对于mabatis_plus的全局配置
QueryWrapper常用方法
模糊查询, like 通过字段 name 模糊查询 a 所在数据
wrapper.like("name","a")
区间条件查询 between 查询gender在1和2之间的
wrapper.between("gender",1,2)
orderBy 排序
orderByDesc 通过 age 进行降序排序
wrapper.orderByDesc("age")
orderByAsc 通过 age 进行升序
wrapper.orderByAsc("age")
isNull 判空
wrapper.isNull("age")
gt age 大于 20的
wrapper.gt("age",20)
or 查询中带有 或 时使用
// 需求:name 中包含 a 且年龄大于20 或 email等于null的
wrapper.like("name","a")
.gt("age",20)
.or()
.isNull("email");
如果需求发生改变,如:
//需求: name中包含 a 且 (年龄大于20 或 email为 null)
wrapper.like("name","a")
.and(i->i.gt("age",20).or().isNull("email");
StringUtils.isNotBlank(userName)){ //isNotBland判断某个字符串是否不为空字符串,不为null,不为空白符
MP分页配置类
@Configuration
@MapperScan("com.kang.dao")
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
代码生成器
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql:///mybatis_plus?characterEncoding=utf-8&userSSL=false", "root", "root")
.globalConfig(builder -> {
builder.author("atguigu") // 设置作者
//.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("D://mybatis_plus"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.kang") // 设置父包名
.moduleName("mybatisplus") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D://mybatis_plus")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude("t_user") // 设置需要生成的表名
.addTablePrefix("t_", "c_"); // 设置过滤表前缀
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>