一、分页功能
- 分页操作需要设定分页对象IPage
@Test
void testGetPage(){
IPage page = new Page(2,5);
employeeMapper.selectPage(page,null);
System.out.println("数据总量"+page.getTotal());
System.out.println("总页数"+page.getPages());
System.out.println("当前页码值"+page.getCurrent());
System.out.println("分页的条数"+page.getSize());
System.out.println("当前页的数据"+page.getRecords());
}
Mapper.selectPage查询到的值保存在IPage中。
- 分页操作是在MyBatisPlus的常规操作基础上增强得到的,内部是动态的拼写SQL语句,因此需要增强对应的功能,使用MyBatisPlus拦截器实现
@Configuration //配置类
public class MpConfig {
@Bean
public MybatisPlusInterceptor mpInterceptor(){
//1. 定义Mp拦截器
MybatisPlusInterceptor mpInterceptor = new MybatisPlusInterceptor();
//2. 添加具体的拦截器
mpInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mpInterceptor;
}
}
- 借助MyBatisPlus日志查阅执行的SQL语句
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
二、条件查询
使用QueryWrapper对象封装查询条件,推荐使用LambdaQueryWrapper对象,所有查询操作封装成方法调用
@Test
void testQueryWrapper(){
QueryWrapper wrapper = new QueryWrapper();
wrapper.like("email","sanguo");
System.out.println(employeeMapper.selectList(wrapper));
}
@Test
void testLambdaQuery(){
String name = "zhang";
LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper();
//wrapper.like(Employee::getLastName,name);
//like第一个条件为真就拼接条件,为假就不拼接。第二个参数是表字段,使用类::get方法,可以防止书写错误
wrapper.like(name!=null,Employee::getLastName,name);
System.out.println(employeeMapper.selectList(wrapper));
}