Springboot分页查询方式
需求
实现数据库中的数据在前端显示并能进行分页查询
分页拦截器的配置
1.所需依赖包
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
2.Mybatisplus分页拦截器的设置
/*分页拦截器的设置*/
@Configuration
public class MPConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
3.分页查询实现方法一:
@GetMapping("/list")
public Result<Map<String,Object>> getUserList(@RequestParam(value = "username",required = false) String username,
@RequestParam(value = "phone",required = false) String phone,
@RequestParam(value = "pageNo") Integer pageNo,
@RequestParam(value = "pageSize") Integer pageSize) {
/*按条件查询 LambdaQueryWrapper<User> User是对应实体类类名*/
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
/*username和phone为对应查询条件*/
/* User::getUsername表示为从实体类User中取username
*与页面输入的username进行名字对比*/
wrapper.eq(StringUtils.hasLength(username), User::getUsername, username);
/*StringUtils.hasLength(username)判断phone不等于空则与数据库进行连接对比
* 其等于这条语句wrapper.eq(phone != null, User::getPhone, phone);*/
wrapper.eq(StringUtils.hasLength(phone), User::getPhone, phone);
//分页查询 需要配置拦截器MpConfig
Page<User> page = new Page<>(pageNo,pageSize);
userService.page(page,wrapper);
Map<String,Object> data = new HashMap<>();
data.put("total",page.getTotal());
data.put("rows",page.getRecords());
return Result.success(data);
}
上面使用的是Map,数据库和前端使用的用户名为username
分页查询实现方法二:
@GetMapping("/page")
public R<Page> page(int page,int pageSize,String name){
log.info("page = {},pageSize = {},name = {}" ,page,pageSize,name);
//构造分页构造器
Page pageInfo = new Page(page,pageSize);
//构造条件构造器
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper();
//添加过滤条件
queryWrapper.like(!StringUtils.isEmpty(name),Employee::getName,name);
//添加排序条件
queryWrapper.orderByDesc(Employee::getUpdateTime);
//执行查询
employeeService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
本文详细介绍了如何在Springboot项目中使用MybatisPlus进行分页查询,包括配置分页拦截器、依赖管理以及两种不同的分页查询实现方法。
1万+

被折叠的 条评论
为什么被折叠?



