SpringBoot + MyBatis-Plus 分页查询

1、安装插件

<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus-jsqlparser-4.9</artifactId>
	<version>3.5.9</version>
</dependency>

2、添加分页配置类

@Configuration
public class MybatisConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 如果配置多个插件, 切记分页最后添加
        // 如果有多数据源可以不配具体类型, 否则都建议配上具体的 DbType
        return interceptor;
    }

}

3、后端示例代码

    public JSONObject getList(Integer page, Integer pageSize) {
        IPage<Record> recordIPage = new Page<>(page, pageSize);
        QueryWrapper<Record> queryWrapper = new QueryWrapper<>();
        queryWrapper.orderByDesc("id");
        List<Record> records = recordMapper.selectPage(recordIPage, queryWrapper).getRecords();

        JSONObject resp = new JSONObject();
        List<JSONObject> items = new LinkedList<>();

        for (Record record : records) {
            User userA = userMapper.selectById(record.getAId());
            User userB = userMapper.selectById(record.getBId());

            JSONObject item = new JSONObject();
            item.put("a_avatar", userA.getAvatar());
            item.put("a_username", userA.getUsername());
            item.put("b_avatar", userB.getAvatar());
            item.put("b_username", userB.getUsername());
            item.put("record", record);
            items.add(item);
        }

        resp.put("records", items);
        resp.put("records_count", recordMapper.selectCount(null));

        return resp;
    }

posted @ 2025-01-29 16:24  fhyxzmkh  阅读(108)  评论(0)    收藏  举报