No MyBatis-Plus, você pode buscar uma quantidade fixa de dados da tabela MySQL a cada vez, definindo consultas de paginação até que todas sejam buscadas. Aqui está um código de amostra simples:
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class MyService {
@Autowired
private MyMapper myMapper;
public List<MyEntity> getAllData() {
List<MyEntity> allData = new ArrayList<>();
QueryWrapper<MyEntity> queryWrapper = new QueryWrapper<>();
int pageSize = 10; // 每页取的数量
int pageNum = 1; // 当前页码
IPage<MyEntity> page;
do {
// 设置分页参数
page = new Page<>(pageNum, pageSize);
// 查询一页数据
IPage<MyEntity> result = myMapper.selectPage(page, queryWrapper);
List<MyEntity> records = result.getRecords();
// 将查询结果添加到总数据列表中
allData.addAll(records);
// 更新当前页码
pageNum++;
// 判断是否还有下一页
} while (page.hasNext());
return allData;
}
}
No código de exemplo acima, usamos myMapper para executar a operação de consulta de paginação, pageNum indica o número da página atual e pageSize indica o número de buscas por página. Use o método page.hasNext() para julgar se há uma próxima página, em caso afirmativo, continue a consultar a próxima página e adicione o resultado à lista de dados totais allData até que todas as consultas de dados sejam concluídas.
Deve-se observar que o código acima usa o plug-in de paginação Page fornecido pelo MyBatis-Plus, e as dependências correspondentes precisam ser introduzidas no projeto. Além disso, MyEntity é sua classe de entidade e MyMapper é sua interface Mapper, que pode ser substituída de acordo com a situação real do seu projeto.