select2,利用ajax高效查询大数据列表2(可搜索、可分页)

简介: select2,利用ajax高效查询大数据列表(可搜索、可分页)

接下来,把关键的源码贴出来,可能和你的项目不吻合,但可以参考。


BaseConditionVO.java

public class BaseConditionVO {
    public final static int PAGE_SHOW_COUNT = 50;
    private int pageNum = 1;
    private int numPerPage = 0;
    private int totalCount = 0;
    private String orderField;
    private String orderDirection;
    /**
     * @Fields ps : 对参数类型进行封装.
     */
    private Map<String, Object> mo = new HashMap<String, Object>();
    public int getPageNum() {
        return pageNum;
    }
    public void setPageNum(int pageNum) {
        this.pageNum = pageNum;
    }
    public int getNumPerPage() {
        return numPerPage > 0 ? numPerPage : PAGE_SHOW_COUNT;
    }
    public void setNumPerPage(int numPerPage) {
        this.numPerPage = numPerPage;
    }
    public String getOrderField() {
        return orderField;
    }
    public void setOrderField(String orderField) {
        this.orderField = orderField;
    }
    public String getOrderDirection() {
        return "desc".equals(orderDirection) ? "desc" : "asc";
    }
    public void setOrderDirection(String orderDirection) {
        this.orderDirection = orderDirection;
    }
    public int getTotalCount() {
        return totalCount;
    }
    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }
    public int getStartIndex() {
        int pageNum = this.getPageNum() > 0 ? this.getPageNum() - 1 : 0;
        return pageNum * this.getNumPerPage();
    }
    public RowBounds createRowBounds() {
        RowBounds ro = new RowBounds(this.getStartIndex(), this.getNumPerPage());
        return ro;
    }
    /**
     * @Title: addParams
     * @Description: 添加查询条件
     * @param key
     * @param value
     */
    public void addParams(String key, Object value) {
        this.getMo().put(key, value);
    }
    /** 
    * @Title: getParams 
    * @Description: 获取查询条件
    * @param key
    * @return
    */
    public Object getParams(String key) {
        return this.getMo().get(key);
    }
    /**
     * @return the mo
     */
    public Map<String, Object> getMo() {
        return mo;
    }
    /**
     * @param mo
     *            the mo to set
     */
    public void setMo(Map<String, Object> mo) {
        this.mo = mo;
    }
}


selec2的分页和Java端分页参数匹配


protected BaseConditionVO getBaseConditionVOForTable(HttpServletRequest req) {
    BaseConditionVO vo = new BaseConditionVO();
    // 当前页
    int currentPage = StrUtil.parseStringToInt(req.getParameter("page"));
    // 一页显示多少行
    int sizes = StrUtil.parseStringToInt(req.getParameter("rows"));
    // 排序
    String sortOrder = StrUtil.getString(req.getParameter("sord"));
    String sortCol = StrUtil.getString(req.getParameter("sidx"));
    vo.setNumPerPage(sizes);
    vo.setPageNum(currentPage);
    vo.setOrderField(sortCol);
    vo.setOrderDirection(sortOrder);
    return vo;
}

Java端到select2端的数据封装

@XStreamAlias("pageGrid")
@SuppressWarnings("rawtypes")
public class PageGrid {
    private int page;
    // 总页数,和select2的processResults.pagination匹配
    private int total;
    private int records;
    // 数据结果集,和select2的processResults.results匹配
    private List data;
    public int getPage() {
        return this.page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    public int getTotal() {
        return this.total;
    }
    public void setTotal(int total) {
        this.total = total;
    }
    public int getRecords() {
        return this.records;
    }
    public void setRecords(int records) {
        this.records = records;
    }
    public List getData() {
        return this.data;
    }
    public void setData(List data) {
        this.data = data;
    }
}
相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
存储 缓存 分布式计算
OSS大数据分析集成:MaxCompute直读OSS外部表优化查询性能(减少数据迁移的ETL成本)
MaxCompute直读OSS外部表优化方案,解决传统ETL架构中数据同步延迟高、传输成本大、维护复杂等问题。通过存储格式优化(ORC/Parquet)、分区剪枝、谓词下推与元数据缓存等技术,显著提升查询性能并降低成本。结合冷热数据分层与并发控制策略,实现高效数据分析。
537 2
|
SQL 大数据 数据挖掘
玩转大数据:从零开始掌握SQL查询基础
玩转大数据:从零开始掌握SQL查询基础
607 35
|
SQL 分布式计算 数据挖掘
阿里云 MaxCompute MaxQA 开启公测,公测可申请 100CU 计算资源解锁近实时高效查询体验
阿里云云原生大数据计算服务 MaxCompute 推出 MaxQA(原 MCQA2.0)查询加速功能,在独享的查询加速资源池的基础上,对管控链路、查询优化器、执行引擎、存储引擎以及缓存机制等多个环节进行全面优化,显著减少了查询响应时间,适用于 BI 场景、交互式分析以及近实时数仓等对延迟要求高且稳定的场景。现正式开启公测,公测期间可申请100CU(价值15000元)计算资源用于测试,欢迎广大开发者及企业用户参与,解锁高效查询体验!
阿里云 MaxCompute MaxQA 开启公测,公测可申请 100CU 计算资源解锁近实时高效查询体验
|
前端开发
React技术栈-react使用的Ajax请求库用户搜索案例
这篇文章展示了一个React技术栈中使用Ajax请求库(如axios)进行用户搜索的实战案例,包括React组件的结构、状态管理以及如何通过Ajax请求获取并展示GitHub用户数据。
281 7
React技术栈-react使用的Ajax请求库用户搜索案例
|
负载均衡 大数据
大数据散列分区查询频率
大数据散列分区查询频率
277 5
|
存储 大数据 数据管理
大数据分区提高查询性能
大数据分区提高查询性能
486 2
|
存储 负载均衡 大数据
大数据水平分区提高查询性能
【11月更文挑战第2天】
373 4
|
存储 大数据 数据管理
大数据列表分区
大数据列表分区
304 1
|
存储 缓存 大数据
大数据列表删除的缺点
【10月更文挑战第23天】
319 6
|
大数据 数据挖掘
大数据中列表删除(Listwise Deletion)
【10月更文挑战第22天】
643 4