/** * 取数初始值, */ static int start = 1; /** * 每次处理数据值 */ static int batchCount = 100; public List getData() { //1要么操作这个数据 List<SheetData> sheetDataList = new ArrayList(); PageInfo pageInfo = new PageInfo(start, batchCount); //获取总数 Long count = ; if (count < 1) { return sheetDataList; } //获取数据 List<Map<String, Object>> m = p.getdata(pageInfo); Long cycleIndex = count % batchCount == 0 ? count / batchCount : count / batchCount + 1; SheetData sheetData = new SheetData(); for (int i = 0; i < cycleIndex; i++) { for (Map<String, Object> next : m) { //防止循环多次空跑数据的情形 if (next == null) { break; } } //2要么操作这个数据 //写文件获取其他操作 m.clear(); pageInfo = new PageInfo(start + 1 + i, batchCount); m = p.getdatat(pageInfo); } return sheetDataList; }
在这其中可以获取数据操作其他动作,减少数据太大引起的风险