MybatisPlus分页类型转换 不要在用循环转换了

使用MybatisPlus查询的sql,返回的必须是一个对应表实体的泛型分页数据
我们给前端返回只需返回VO,我们可能会循环进行对象复制从新赋值
优化:MybatisPlus分页对象有直接转换的方法

优化前

// 最终分页对象
Page<ResultVO> resultPage = new Page<ResultVO>();
List<ResultVO> resultList = new ArrayList<ResultVO>();
// 使用MybatisPlus查询
Page<PayTradeOrderEntity> page = this.selectPage(
        new Query<PayTradeOrderEntity>(params).getPage(),
        null);
        // 循环
List<PayTradeOrderEntity> records = page.getRecords();
for (PayTradeOrderEntity record : records) {
    ResultVO vo = new ResultVO();
    BeanUtil.copyProperties(record, vo);
    resultList.add(vo);
}
resultPage.setRecords(resultList);
resultPage.setCurrent(page.getCurrent());
resultPage.setSize(page.getSize());
resultPage.setTotal(page.getTotal());

优化后

// 使用MybatisPlus查询......
Page<InterestEntity> resultPage = new Page();

// 最终返回分页对象
IPage<InterestProcessVO> convertPage = resultPage.convert(result -> {
    InterestProcessVO vo = new InterestProcessVO();
    BeanUtil.copyProperties(result, vo)
    return vo;
});

注意:分页转换器方法体必须使用返回值

在使用MyBatis Plus进行循环分页时,你可以通过使用`PageHelper`来实现。下面是一个示例代码: ```java import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserMapper userMapper; public void getUserListByPage(int pageSize) { int pageNum = 1; Page<User> page = new Page<>(pageNum, pageSize); PageHelper.startPage(pageNum, pageSize); userMapper.selectPage(page, null); while (true) { // 处理分页数据 List<User> userList = page.getRecords(); // TODO: 进行你的业务处理 // 判断是否还有下一页 if (page.hasNext()) { // 获取下一页数据 page = page.nextPage(); userList = page.getRecords(); // TODO: 进行你的业务处理 } else { break; } } } } ``` 在上面的示例代码中,我们首先创建了一个`Page`对象,并指定了每页的记录数。 然后,使用`PageHelper.startPage`方法开始分页,并将`page`对象传递给`selectPage`方法进行查询。 接着,在一个循环中,我们首先处理当前页的数据,然后判断是否还有下一页,如果有,则获取下一页的数据进行处理,直到没有下一页为止。 请注意,以上示例中的`UserMapper`是一个自动生成的MyBatis Plus的Mapper接口,你需要根据自己的实际情况来编写该接口。 希望能帮到你!如果你还有其他问题,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个小浪吴啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值