实现数据库中的数据在前端显示并能进行分页查询

本文详细介绍了如何在Springboot项目中使用MybatisPlus进行分页查询,包括配置分页拦截器、依赖管理以及两种不同的分页查询实现方法。

需求

实现数据库中的数据在前端显示并能进行分页查询

分页拦截器的配置

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);
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值