spring boot下的list查詢分頁


實際項目里遇到的問題

如何實現spring下的list查詢分頁

此文並非教程, 而是個人學習

在common目錄下utils 新建一個xxxUtils.class

輸入一下的代碼(百度來的)
傳值傳 “page” 到你需要實現的地方 如impl代碼里
返回值是一個list集合 主要目的是實現與前端交互時回傳的數據有多少

/**
 *
 * @param page
 * @return list集合
 */
public static List<ExcelDataEntity> page(List<ExcelDataEntity> datalist, Integer page, Integer size) {
    List<ExcelDataEntity> list = new ArrayList<>();
    if (datalist != null && datalist.size() > 0) {
        int cuurIdx = (page > 1 ? (page - 1) * size : 0);
        for (int i = 0; i < size && i < datalist.size() - cuurIdx; i++) {
            ExcelDataEntity user = datalist.get(cuurIdx + i);
            list.add(user);
        }
    }
    return list;//2020.11.11 集合分類
}

在你需要實現的impl里加上這樣的初始定義

先接收傳過來的數據 serviceimpl中用string給其定義

params.get("page");

params.get("limit");

String pages = (String) params.get("page");//從utils傳過來page的參數
long page = Long.parseLong(pages);
String limits = (String) params.get("limit");
long limit1 = Long.parseLong(limits);

具體實現方法 在impl中

List<ExcelDataEntity> data = DateUtils.page(dataList, (int) page, (int) limit1);

該impl中 具體代碼用到的位置
添加位置 “!”標識出了

@Override
public HashMap<String, Object> alarmFunction(Map<String, Object> params) throws ParseException {
    List categorys = null;
    List departments = null;
    HashMap<String, Object> dataMap = new HashMap<>();
    String likeKey = StringUtils.defaultIfEmpty((String) params.get("likeKey"), "name");
    !!!String pages = (String) params.get("page");//從utils傳過來page的參數
    !!!long page = Long.parseLong(pages);
    !!!String limits = (String) params.get("limit");
    !!!long limit1 = Long.parseLong(limits);
    String likeValue = (String) params.get("likeValue");
    likeValue = "%" + likeValue + "%";
    //分頁參數
    Long curPage = 0L;
    Long limit = 10L;
    if (params.get(Constant.PAGE) != null) {
        curPage = Long.parseLong((String) params.get(Constant.PAGE)) - 1L;
    }
    if (params.get(Constant.LIMIT) != null) {
        limit = Long.parseLong((String) params.get(Constant.LIMIT));
    }
    Long start = curPage * limit;
    String json = (String) params.get("preciseValue");
    if (!StringUtils.isEmpty(json)) {
        HashMap<String, String> map = JSON.parseObject(json, HashMap.class);
        Set<String> keys = map.keySet();
        for (String key : keys) {
            switch (key) {
                case "category":
                    String categorysString = map.get(key);
                    if (StringUtils.isEmpty(categorysString)) {
                        break;
                    }
                    categorys = Arrays.asList(categorysString.split(","));
                    break;
                case "department":
                    String departmentsString = map.get(key);
                    if (StringUtils.isEmpty(departmentsString)) {
                        break;
                    }
                    departments = Arrays.asList(departmentsString.split(","));
                    break;
            }
        }
    }
    List<String> unit = UserUtils.getUserDepartment();
    List<ApparatusInfoEntity> entitiesInfo = apparatusInfoDao.getAllByKeys(likeKey, likeValue, start, limit, categorys, departments, unit);
    List<ExcelDataEntity> dataList = new ArrayList<>();
    for (int i = 0; i < entitiesInfo.size(); i++) {
        ApparatusInfoEntity entity = entitiesInfo.get(i);
        for (int j = 1; j < 8; j++) {
            ExcelDataEntity data = new ExcelDataEntity();
            String s = DateUtils.getPastDate(j);
            Date date = DateUtils.stringToDate(s, "yyyy-MM-dd");
            ExcelDataEntity type = apparatusProcessDao.selectProcessByDate(date, entity.getId());
            if (type == null) {
                ExcelDataEntity app = apparatusProcessDao.getTimeByProcess(entity.getId());
                if (app != null) {
                    data.setId(entity.getId());
                    data.setName(entity.getName());
                    data.setCategory(entity.getCategory());
                    data.setModel(entity.getModel());
                    data.setPosition(entity.getPosition());
                    data.setPlannedMaintenance(s);
                    data.setDepartment(entity.getDepartment());
                    data.setCommissioningtime(entity.getCommissioningtime());
                    data.setSn(entity.getSn());
                    data.setExecutor(app.getExecutor());
                    data.setResponsible(app.getResponsible());
                    int time = DateUtils.daysBetween(app.getOperationTime(), new Date());
                    data.setLastSaved(time + "天");
                    data.setDescription("運轉記錄");
                    data.setType(-1L);
                    dataList.add(data);
                } else {
                    data.setId(entity.getId());
                    data.setName(entity.getName());
                    data.setCategory(entity.getCategory());
                    data.setModel(entity.getModel());
                    data.setPosition(entity.getPosition());
                    data.setPlannedMaintenance(s);
                    data.setDepartment(entity.getDepartment());
                    data.setCommissioningtime(entity.getCommissioningtime());
                    data.setSn(entity.getSn());
                    data.setDescription("運轉記錄");
                    data.setType(-1L);
                    dataList.add(data);
                }
            }
        }
    }


    !!!List<ExcelDataEntity> data = DateUtils.page(dataList, (int) page, (int) limit1);
	//這里調用與回傳的的數值就是在!until!包中給出的
    dataMap.put("dataList", data);
    dataMap.put("num", dataList.size() - 1);
    return dataMap;
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM