springMVC手写分页查询

package com.neuedu.java7.baen;

public class Page {

    private int currentPage = 1;    //当前页数
    private int totalPages;        //总页数
    private int total;            //记录总行数
    private int pageSize = 5;    //每页记录行数
    private int nextPage;        //下一页
    private int prefPage;        //前一页

    public Page(){
    }

    public Page(int currentPage, int pageSize) {
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }

    public int getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    public int getTotalPages() {
        totalPages = total%pageSize == 0?total/pageSize:total/pageSize+1;
        return totalPages;
    }
    public int getTotal() {
        return total;
    }
    public void setTotal(int total) {
        this.total = total;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getNextPage() {
        if(currentPage<totalPages){
            nextPage = currentPage+1;
        }else{
            nextPage = currentPage;
        }
        return nextPage;
    }
    public int getPrefPage() {
        if(currentPage>1){
            prefPage = currentPage-1;
        }else{
            prefPage = currentPage;
        }
        return prefPage;
    }    

}

//写方法
    /**
     * 分页查询
     *
     * @param pagger
     * @return
     */
    public List<Category> findList(Page page);

    /**
     * 查询记录总数
     *
     * @return
     */
    public int findTotal();

//写Mapper方法
    <select id="findTotal" resultType="int">
        select count(t.id) t from
        category t
    </select>

    <select id="findList" parameterType="com.neuedu.java7.baen.Page"
        resultMap="CategoryMap">
        select * from (select rownum rn, id,cname from category
        where rownum &lt;= #{currentPage}*#{pageSize}) where rn &gt;(#{currentPage}-1)*#{pageSize}
    </select>

//写Action控制
@RequestMapping("/doAll")
    public String findAlls(HttpServletRequest request) {    

        Page page  = new Page();
        int count = categoryService.findTotal();
         page.setTotal(count);

         request.getSession().setAttribute("page", page);
        List<Category> category = categoryService.findList(page);
        request.getSession().setAttribute("category", category);
        return "list";
    }

    @RequestMapping("/page")
    public String page(Integer pageSize,Integer currentPage,HttpServletRequest request){
        Page page = null;
        if (request.getSession().getAttribute("page") !=null) {
            page = (Page) request.getSession().getAttribute("page");
        }else {
            page = new Page();
        }
        if (pageSize!=null) {
            page.setPageSize(pageSize);
        }
        if (currentPage!=null) {
            page.setCurrentPage(currentPage);
        }
        List<Category> category = categoryService.findList(page);
        request.setAttribute("category", category);

        return "list";
    }

//写页面编码
<tr>
    <td align="left" colspan="2">每页显示<select name="pageSize" id="pageSize" style="background-color: #FFFF33" onchange="toPage()">
                <option value="5" ${page.pageSize==5?"selected=‘selected‘":"" }>5</option>
                <option value="10" ${page.pageSize==10?"selected=‘selected‘":"" }>10</option>
                <option value="20" ${page.pageSize==20?"selected=‘selected‘":"" }>20</option>
            </select>条</td>

    <td align="right" colspan="3"><a href="../category/page.do?currentPage=1">[首页]</a>
    <a href="../category/page.do?currentPage=${page.prefPage }">前一页</a>
    <a href="../category/page.do?currentPage=${page.nextPage }">后一页</a>
    <a href="../category/page.do?currentPage=${page.totalPages }">[尾页]</a></td>
    </td>
    </tr>
时间: 11-08

springMVC手写分页查询的相关文章

Ajax写分页查询(实现不刷新页面)

要求: 获取数据库中大量的信息显示在页面上,必然要使用到分页查询: 若不使用Ajax,而是用其他的方法,肯定是要刷新页面的,用户体检很不好, 所以最好使用Ajax的方法写分页查询: 1.先来找一张数据很多的表吧! 一张简单的表 代码,引入jquery包: <script src="jquery-1.11.2.min.js"></script> 写一张表格,显示我们的代号跟名称: <table class="table table-striped&

如何用ajax写分页查询(以留言信息为例)-----2017-05-17

要写分页,首先你得清楚,一页你想显示多少条信息?如何计算总共显示的页数? 先说一下思路: (1)从数据库读取数据,以chenai表为例,读取所有留言信息.并能够实现输入发送者,可以查询该发送者的留言总数. (2)计算分页信息,此处,以每页显示5条信息为例.分页列表(如图)以当前页为中心,向前显示2条,向后显示2条. (3)给每个分页列表添加对应的点击事件. (4)能够实现分页后,添加查询分页功能. 现实效果图: 第一步:引入 jquery文件和bootstrap文件.(因为表格和分页均是用的bo

springmvc 动态代理 JDK实现与模拟JDK纯手写实现。

首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用  ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Proxy0 静态代理实例1.创建一个接口: package proxy; public interface People { public void zhaoduixiang()throws Throwable; } 2.创建一个实现类,张三,张三能够吃饭,张三可以找对象 package proxy;

JdbcTemplate+PageImpl实现多表分页查询

一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static final long serialVersionUID = 7988377299341530426L; public final static int IS_DELETE_YES = 1;// 标记删除 public final static int IS_DELETE_NO = 0;// 未删除,

基于Mysql数据库的SSM分页查询

前言: Hello,本Y又来了,"分页"在我们使用软件的过程中是一个很常见的场景,比如博客园对于每个博主的博客都进行了分页展示.可以简单清晰的展示数据,防止一下子将过多的数据展现给用户,毕竟用户的阅读能力和短期接受力都有限,使用分页可以避免带给用户浏览上的不舒服感,利用它可以带给用户良好的体验,便于浏览和查询数据.那么本期我们的博客就来探讨关于分页,使用的Java的框架是Spring+Springmvc+mybatis,这也是目前企业非常流行的搭配方式,使用的数据库是Mysql,我们将

ADO.NET #3-1 (GridView + DataReader + SqlCommand)完全手写Code Behind

[C#] ADO.NET #3-1 (GridView + DataReader + SqlCommand)完全手写.后置程序代码 之前有分享过一个范例 [C#] ADO.NET #3 (GridView + SqlDataSource)完全手写.后置程序代码,兼论 SqlDataSource与UpdateParameter/DeleteParameter的用法 后来,在网络上找到的人,就开始大量地为「SqlDataSource小精灵」动手写程序 这并非我的原意. 我的意思是,透过手写的程序代码

bos 第4 (区域excel批量导入、区域通用分页查询、分区的添加、分区多条件分页查询、分区导出excel)

BOS项目笔记 第4天 今天内容安排: 1.区域批量导入功能 jQuery OCUpload(一键上传插件).apache POI.pinyin4j 2.实现区域的分页查询 3.对分页代码重构 4.添加分区(combobox下拉框) 5.分区的组合条件分页查询 6.分区数据导出功能 1. 区域数据批量导入功能 1.1 一键上传插件使用 ajax不能做文件上传. 第一步:在jsp页面中引入插件的js文件 <script type="text/javascript" src=&quo

HBase多条件及分页查询的一些方法

HBase是Apache Hadoop生态系统中的重要一员,它的海量数据存储能力,超高的数据读写性能,以及优秀的可扩展性使之成为最受欢迎的NoSQL数据库之一.它超强的插入和读取性能与它的数据组织方式有着密切的关系,在逻辑上,HBase的表数据按RowKey进行字典排序, RowKey实际上是数据表的一级索引(Primary Index),由于HBase本身没有二级索引(Secondary Index)机制,基于索引检索数据只能单纯地依靠RowKey.也只有使用RowKey查询数据才能得到非常高

php分页查询

分页查询通过引用page.class.php分页工具,就好写多了: 1.首先要有显示的内容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">