MyBatisPlus分页查询

举报
S-X-S 发表于 2025/01/09 11:05:22 2025/01/09
【摘要】 1.sun-common-mybatisplus编写配置类/** * mybatis自带的分页插件 * @return */@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterc...

1.sun-common-mybatisplus编写配置类

/**
 * mybatis自带的分页插件
 * @return
 */
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
    mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
    return mybatisPlusInterceptor;
}

CleanShot 2024-07-12 at 15.49.24@2x

2.sun-user

1.UserListReq.java

package com.sunxiansheng.user.entity.req;

import lombok.Data;

/**
 * Description: mybatis分页查询
 * @Author sun
 * @Create 2024/7/9 16:53
 * @Version 1.0
 */
@Data
public class UserListReq {

    private Integer pageIndex;

    private Integer pageSize;

}

2.UserDto.java

package com.sunxiansheng.user.entity.dto;

import lombok.Data;

/**
 * Description: 从数据库中查询数据
 * @Author sun
 * @Create 2024/7/9 16:01
 * @Version 1.0
 */
@Data
public class UserDto {

    private String name;

    private Integer age;

    // 分页参数
    private Integer pageIndex;

    private Integer pageSize;

}

3.UserController.java

    @GetMapping
    public Result<PageResult<UserPo>> getPage(@RequestBody UserListReq userListReq) {
        UserDto userDto = new UserDto();
        BeanUtils.copyProperties(userListReq, userDto);
        PageResult<UserPo> userPage = userService.getUserPage(userDto);
        return Result.ok(userPage);
    }

4.service

1.UserService.java
    PageResult<UserPo> getUserPage(UserDto userDto);
2.UserServiceImpl.java
    @Override
    public PageResult<UserPo> getUserPage(UserDto userDto) {
        Page<UserPo> userPoPage = new Page<>(userDto.getPageIndex(), userDto.getPageSize());
        IPage<UserPo> userPage = userMapper.getUserPage(userPoPage);
        PageResult<UserPo> pageResult = new PageResult<>();
        pageResult.loadData(userPage);
        return pageResult;
    }

5.mapper

1.UserMapper.java
package com.sunxiansheng.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sunxiansheng.user.entity.po.UserPo;

/**
 * Description:
 * @Author sun
 * @Create 2024/7/9 15:59
 * @Version 1.0
 */
public interface UserMapper extends BaseMapper<UserPo> {

    IPage<UserPo> getUserPage(IPage<UserPo> userPoIPage);

}
2.UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sunxiansheng.user.mapper.UserMapper">

    <select id="getUserPage" resultType="com.sunxiansheng.user.entity.po.UserPo">
        select id, name, age
        from user
        where delete_flag = 0
    </select>

</mapper>

6.PageResult.java

package com.sunxiansheng.user.entity;

import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;

import java.io.Serializable;
import java.util.Collections;
import java.util.List;

/**
 * Description:
 * @Author sun
 * @Create 2024/7/12 15:18
 * @Version 1.0
 */
@Data
public class PageResult<T> implements Serializable {

    private Long total;

    private Long size;

    private Long current;

    private Long pages;

    private List<T> records = Collections.emptyList();

    public void loadData(IPage<T> pageData) {
        this.setCurrent(pageData.getCurrent());
        this.setPages(pageData.getPages());
        this.setSize(pageData.getSize());
        this.setTotal(pageData.getTotal());
        this.setRecords(pageData.getRecords());
    }

}

3.测试

CleanShot 2024-07-12 at 15.54.18@2x

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。