一、了解QueryWrapper
QueryWrapper就是在使用中Mybatis-plus真实用到的一种技术,也叫作构造器,能简化sql的操作。
二、多条件查询
根据不同的查询要求,有不同的用法,常用到的比如:eq、like、and、or、isNull、isNotNull、ne、likeRight、between等;
MyBatisPlus针对字段检查进行了功能升级,全面支持Lambda表达式
@Test
void testGetBy2(){
String name = "张";
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
//if(name != null) lqw.like(User::getName,name); //方式一:JAVA代码控制
lqw.like(name != null,User::getName,name); //方式二:API接口提供控制开关
userMapper.selectList(lqw);
}
三、分页查询
1.设置分页信息
//Page<User> page = new Page<>(页码,页容量);
Page<User> page = new Page<>(2,3);
2.写配置类
@Configuration
public class MyBatisPlusConfig {
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
3.业务层查询
public IPage<User> page(){
//1.设置分页信息
Page<User> page = new Page<>(2,3);
//2.查询
Page<User> page1 = userService.page(page);
System.out.println("page1 = " + page1);
System.out.println("page1.getSize() = " + page1.getSize());
System.out.println("page1.getCurrent() = " + page1.getCurrent());
System.out.println("page1.getPages() = " + page1.getPages());
System.out.println("page1.getTotal() = " + page1.getTotal());
System.out.println("page1.getRecords() = " + page1.getRecords());
return page1;
}
四、注意点
使用Mybatis-Plus page分页查询时,会将查询到的总记录数保存到pages属性里面,而进行添加操作,id的自增的前提下,会返回所有包括id信息,不用再查询一次