在工作中遇到需要根据某个条件的查询全部数据,考虑到可能数据量较大,一次性返回全部数据会出现占用流量以及执行时间较长的情况,因此我们可能会分页查询全部数据回来。以下是代码实战:

public List<GoodsBo> listByStoreName(String storeName) {
		LambdaQueryWrapper<GoodsBo> queryWrapper = Wrappers.lambdaQuery(GoodsBo.class)
                .eq(GoodsBo::getStoreName, storeName);

        List<GoodsBo> dataList = new ArrayList<>();
        int page = 0;
        List<GoodsBo> currentPageResults;
        //分页查询最终查询出全部数据
        do {
            currentPageResults = baseMapper.selectList(queryWrapper
                    .last(" LIMIT " + page * SplitConstants.SELECT_BATCH_SIZE + "," + SplitConstants.SELECT_BATCH_SIZE));
            if (currentPageResults != null && !currentPageResults.isEmpty()) {
                dataList.addAll(currentPageResults);
            }
            page++;
        } while (currentPageResults != null && !currentPageResults.isEmpty());

        return dataList;
}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐