从redis中取值 然后通过list进行分页查询

1.首先是往redis中存入数据:

                                    totalCost = yarnCost + hbaseCost + hdfsCost;
                                    map.put("busiName", busiList.get(q).getAppname());
                                    map.put("projectName", projectList.get(w).getGroupname());
                                    map.put("userList", list1);
                                    map.put("allCost", totalCost);
                                    map.put("storageCost", hbaseCost + hdfsCost);
                                    map.put("calculationCost", yarnCost);
                                    
                                    // 流成本
                                     map.put("liuCost", "0");

然后将map存入到list中:

                                     list.add(map);

接下来是往redis中存入数据:

                                   String redisid = redis_ip;
                                String redisport = redis_port;
                                Jedis jedis = new Jedis(redisid, Integer.valueOf(redisport));
                                String json = JSONObject.toJSONString(list);
                                jedis.set(tenantList.get(c).getTenantname(), json);
                                jedis.close();

存入redis库中的数据格式是:

是个String类型的JSON串(目前我是这么认为,因为对类型之间并不是很熟悉,尴尬!!!)

2.现在是从redis中取值,转成list集合,然后做分页查询:

public JsonResult getResourceCostCopy(@RequestParam(value="groupName")String groupName,@RequestParam(value="pageSize")Integer pageSize,@RequestParam(value="pageIndex")Integer pageIndex){
        List<Object> list = new ArrayList<Object>(); 
        String result = "";
        Object object = "";
        int fromIndex =0 ;
        int toIndex = 0 ;
        try {
            String  redisid = redis_ip;
            String redisport = redis_port;
            Jedis jedis = new Jedis(redisid, Integer.valueOf(redisport));
             result = jedis.get(groupName);
             System.out.println(pageSize);
             System.out.println(pageIndex);
             JSONArray jsonArray = JSONArray.parseArray(result);
                Iterator<Object> iterator = jsonArray.iterator();
                while(iterator.hasNext()){
                    object= iterator.next();
                    list.add(object);
                }
                System.out.println(list);
                Paging paging = Paging.pagination(list.size(),pageSize,pageIndex);
                fromIndex = paging.getQueryIndex();
                 toIndex = 0;
                if (fromIndex + paging.getPageSize() >= list.size()){
                    toIndex = list.size();
                }else {
                    toIndex = fromIndex +  paging.getPageSize();
                }
                if (fromIndex > toIndex){
                    return (JsonResult) Collections.EMPTY_LIST;
                }
                System.out.println(list.subList(fromIndex,toIndex));
            jedis.close();
        } catch (Exception e) {
            return new JsonResult(Constants.RESULTCODE_EXCEPTION, e.getMessage(), null);
        }
        return new JsonResult(Constants.RESULTCODE_SUCCESS, "获取联动表信息成功", list.subList(fromIndex,toIndex));
    }

3.当然,这里避免不了需要自己写个工具类:

public class Paging {
    private Integer totalNum;//总条数
    private Integer totalPage;//总页数
    private Integer pageSize;//每页条数
    private Integer pageIndex;//当前页码
    private Integer queryIndex;//当前页从第几条开始查

    public static Paging pagination(Integer totalNum,Integer pageSize,Integer pageIndex){
        Paging page = new Paging();
        page.setTotalNum(totalNum);
        Integer totalPage = totalNum % pageSize == 0 ? totalNum / pageSize : totalNum / pageSize + 1;
        page.setTotalPage(totalPage);
        page.setPageIndex(pageIndex);
        page.setPageSize(pageSize);
        page.setQueryIndex(pageSize * (pageIndex-1));
        return page;
    }

    public Integer getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(Integer totalNum) {
        this.totalNum = totalNum;
    }

    public Integer getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(Integer totalPage) {
        this.totalPage = totalPage;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Integer getPageIndex() {
        return pageIndex;
    }

    public void setPageIndex(Integer pageIndex) {
        this.pageIndex = pageIndex;
    }

    public Integer getQueryIndex() {
        return queryIndex;
    }

    public void setQueryIndex(Integer queryIndex) {
        this.queryIndex = queryIndex;
    }
}
 

4.最后,前台使用get请求方式访问,传入groupName和每页展示的的条数以及当前页数,就能展现成果了。

哈哈    大功告成!!!!!

猜你喜欢

转载自blog.csdn.net/xiaoyutongxue6/article/details/81413708