一、添加查询参数

@Data
public class QueryPageParam {
//默认
private static int PAGE_SIZE=20;
private static int PAGE_NUM=1;
private int pageSize=PAGE_SIZE;
private int pageNum=PAGE_NUM;
private HashMap param = new HashMap();
}
二、添加分页拦截器

@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
三、控制器里面使用分页
@PostMapping("/listPage")
public List<User> listPage(@RequestBody QueryPageParam queryPageParam) {
Page<User> page = new Page<>();
page.setCurrent(queryPageParam.getPageNum());
page.setSize(queryPageParam.getPageSize());
HashMap param = queryPageParam.getParam();
String name = (String) param.get("name");
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.like(User::getName, name);
IPage result = userService.page(page, lambdaQueryWrapper);
System.out.println("total = " + result.getTotal());
return result.getRecords();
}
重写 查询

service
public interface UserService extends IService<User> {
IPage pageCC(IPage<User> page, Wrapper wrapper);
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public IPage pageCC(IPage<User> page, Wrapper wrapper) {
return userMapper.pageCC(page, wrapper);
}
}
mapper
@Mapper
public interface UserMapper extends BaseMapper<User> {
IPage pageCC(IPage<User> page, @Param(Constants.WRAPPER) Wrapper wrapper);
}
mapper.xml 自己写分页 与 查询条件
<select id="pageCC" resultType="com.liush.wms.entity.User">
select *
from user ${ew.customSqlSegment}
</select>
控制器
public interface UserService extends IService<User> {
IPage pageCC(IPage<User> page, Wrapper wrapper);
}
@PostMapping("/listPageC1")
public Result listPageC1(@RequestBody QueryPageParam query) {
HashMap param = query.getParam();
String name = (String) param.get("name");
String sex = (String) param.get("sex");
String roleId = (String) param.get("roleId");
Page<User> page = new Page();
page.setCurrent(query.getPageNum());
page.setSize(query.getPageSize());
LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper();
if (StringUtils.isNotBlank(name) && !"null".equals(name)) {
lambdaQueryWrapper.like(User::getName, name);
}
if (StringUtils.isNotBlank(sex)) {
lambdaQueryWrapper.eq(User::getSex, sex);
}
if (StringUtils.isNotBlank(roleId)) {
lambdaQueryWrapper.eq(User::getRoleId, roleId);
}
//IPage result = userService.pageC(page);
IPage result = userService.pageCC(page, lambdaQueryWrapper);
System.out.println("total==" + result.getTotal());
return Result.suc(result.getRecords(), result.getTotal());
}