分页 检索

controller 页面

public String list(Model model,String deptname,@RequestParam(defaultValue="1",required=false) Integer pageIndex,@RequestParam(defaultValue=ResourceKeys.DEFAULT_PAGE_SIZE) Integer pageSize){

        PageUtil<Dept>pageModel = deptService.getAllDeptWithPages(deptname,pageIndex,pageSize);
        model.addAttribute("pageModel", pageModel);

return “路径”

}

xml 页面

  <select id="getCategoryCount" parameterType="java.lang.String" resultType="long">
      select count(*) from Dept
        <where>
        <if test="_parameter!=null">
            and deptname like concat (‘%‘,#{_parameter},‘%‘)
        </if>
    </where>

  </select>

  <select id="getCategoryWithPages" parameterType="java.util.Map" resultType="Dept">
      select *,(@rownum:[email protected]+1) i from (SELECT @rownum:=0) r, dept

    <where>
        <if test="deptname!=null">
            and deptname like concat (‘%‘,#{deptname},‘%‘)
        </if>
    </where>
    limit #{skip},#{take}
  </select>
  

serviceImp

    @Override
    public PageUtil<Dept> getAllDeptWithPages(String deptname, Integer pageIndex, Integer pageSize) {
        // TODO Auto-generated method stub
        PageUtil<Dept> pageModel =new PageUtil<Dept>(pageIndex,pageSize);
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("deptname",deptname);
        map.put("skip",(pageIndex-1)*pageSize);
        map.put("take",pageSize);

        List<Dept> list = dao.getCategoryWithPages(map);
        Long count =dao.getCategoryCount(deptname);

        pageModel.setDateList(list);
        pageModel.setTotalCount(count);

        return pageModel;
    }

jsp 文件写入

<c:forEach items="${pageModel.dateList }" var="emp" varStatus="status">                                            <tr>                            <td>                                <input id="id0" type="checkbox" name="chkDeptIds" value="${emp.empid }" /></td>                               <td>${(clients.pageIndex-1)*clients.pageSize+status.index+1 }</td>                               <td>${emp.empname}</td>                                                      </tr>                    </c:forEach>
${(clients.pageIndex-1)*clients.pageSize+status.index+1 }  排列序号

PageUtil   分页类 
package com.wskj.ssm.util;

import java.util.List;

public class PageUtil<T> {

    private Integer pageIndex = 1;

    private Integer pageSize = 10;

    private Integer pageCount = 0;

    public PageUtil (){

        super();
    }

    public PageUtil(Integer pageIndex, Integer pageSize) {
        super();
        this.pageIndex = pageIndex;
        this.pageSize = pageSize;
    }

    private List<T> dateList;

    private Long totalCount = 0l;

    public Integer getPageIndex() {
        return pageIndex;
    }

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

    public Integer getPageSize() {
        return pageSize;
    }

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

    public Integer getPageCount() {
        pageCount =(int) Math.ceil(this.totalCount * 1.0/this.pageSize);

        return pageCount;
    }

    public void setPageCount(Integer pageCount) {
        this.pageCount = pageCount;
    }

    public List<T> getDateList() {
        return dateList;
    }

    public void setDateList(List<T> dateList) {
        this.dateList = dateList;
    }

    public Long getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Long totalCount) {
        this.totalCount = totalCount;
    }

}
				
时间: 2024-11-05 12:21:20

分页 检索的相关文章

数据分页处理系列之一:Oracle表数据分页检索SQL

  关于Oracle数据分页检索SQL语法,网络上比比皆是,花样繁多,本篇也是笔者本人在网络上搜寻的比较有代表性的语法,绝非本人原创,贴在这里,纯粹是为了让"数据分页专题系列"看起来稍微完整和丰满一些,故先在这里特别声明一下,以免招来骂声一片! 先介绍两个比较有代表性的数据分页检索SQL实例. 无ORDER BY排序的写法.(效率最高) (经过测试,此方法成本最低,只嵌套一层,速度最快!即使检索的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT RO

[转]关于SQL分页存储过程的分析

[转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合

数据分页处理系列之三:Neo4j图数据分页处理

  首先简单介绍下Neo4j,Neo4j是一个高性能的NOSQL图形数据库,它将结构化数据存储在网络上而不是表中,它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)而不是表中.Neo4j也可以被看做是一个高性能的图引擎,该引擎具有成熟数据库的所有特性. Neo4j中涉及到几个关键的实体对象,分别是Node(节点).Relationship(关系).Path(路径).Direction(关系方向).RelationshipType

Hibernate检索方式概述

Hibernate检索方式概述 我们在对数据库的操作中,最常用的是select,那么使用Hibernate如何进行select操作呢?本文就来徐徐道来. Hibernate检索方式可分为5种: 导航对象图检索方式,根据已加载的对象导航到其它对象. OID检索方式,按照对象的OID来检索对象. HQL检索方式,使用面向对象的HQL查询语言. QBC检索方式,使用QBC(Query by Criteria)API来检索对象,这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口. 本

关于SQL分页存储过程的分析

建 立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存 中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的 不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长

分页优化+表锁和库存优化+数据库的备份和导入

一.分页优化技术 代码参看: php/classic.php 把50331651记录进行分页,每页显示2条记录,于是我们用传统php编码方式,编写分页代码如下: 上传到/var/www/html下进行测试,结果如下: 如果访问第1页和第4页,返回语句: 使用explain执行计划查询比较靠前的页数,发觉速度很快因为可以使用上索引: 如果访问第4100000页,返回语句: 使用explain分析结果如下: 发觉这时如果分页到了中间的页数,这时我们既需要排序又要分页检索数据的时候,就会出现Using

SQL Server海量数据库的查询优化及分页算法方案

建立一个web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存 中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的 不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等

数据分页处理系列之二:HBase表数据分页处理

  HBase是Hadoop大数据生态技术圈中的一项关键技术,是一种用于分布式存储大数据的列式数据库,关于HBase更加详细的介绍和技术细节,朋友们可以在网络上进行搜寻,笔者本人在接下来的日子里也会写一个HBase方面的技术专题,有兴趣的朋友们可以稍微的期待一下.不过本章节的重点是介绍下HBase表数据的分页处理,其他的就不多说了. 首先说一下表数据分页中不可回避的一个指标:总记录数.在关系数据库中很容易统计出记录总数,但在HBase中,这却是一个大难题,至少在目前,朋友们根本不要奢望能够通过类

SQL Server 的通用分页显示存储过程

建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存.游标一建立,就将相关的记录锁住,直到取消游标.游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作.而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待