对查询出来的数据数据进行分页

采用DAO层设计模式
详解
1.dao包:1.通用Dao类(实现增删改查)2.EmpDao(实现Emp的一些操作)3.EmpDaoImpl(具体操作Emp操作的类)
2.pojo具体类包1.Emp类
3.工具类包 1.JDBCTools 2.Page
4.测试类包

思想:用面向对象的思维进行思考,进行分页就要建立一个页码类

1.页码类应该有当前页码的属性
2.上一页下一页也就是对当前页码的操作,因此建立两个对当前页码操作的方法
3.而首页可以让当前页等于1,尾页需要等于总页数
4.因此我们需要一个总页数属性
5.总页数就等于数据库数据的条数%每一页的数据
6.这样每一页就可以对应一定数量数量的数据,这是我们要建立一个集合装每一页的数据。
7.如何通过页码对应数据库的数据呢?,这样我们就可以用到limit这个方法了

public class Page <T>{
    private int pageNo;  //当前页
    private int pageSize;  //每一页的数据个数
    private int totalNum;   //总数据
    private List<T> list=new ArrayList<>();  //装数据的集合
//这里可以通过get或者set方法控制当前页是合法
    public int getPageNo() {  
        if(pageNo<1){ //当前页小于1,返回1
            return 1;
        }
        if(pageNo>getTotalPageNum()){  //大于总页数,返回总后一页
            return getTotalPageNum();
        }   
        return pageNo;
    }
    public void setPageNo(int pageNo) {
        this.pageNo = pageNo;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getTotalNum() {
        return totalNum;
    }
    public void setTotalNum(int totalNum) {
        this.totalNum = totalNum;
    }
    
    public int getTotalPageNum(){  //得到总页数
        
        if(totalNum%pageSize==0){  //总数据除以每页的数据条数
            return totalNum%pageSize;
        }else{
            return totalNum%pageSize+1;
        }
    }
    
    //获取上一页  
    
    public int getPrePage()
    {
        if(getPageNo() > 1)
            return getPageNo() - 1;
        return getPageNo();
    }
    
    
    //获取下一页  
    
    public int getNextPage()
    {
        if(getPageNo() < getTotalPageNum())
            return getPageNo() + 1;
        return getPageNo();
    }
    public Page(int pageNo, int pageSize, int totalNum, List<T> list) {
        super();
        this.pageNo = pageNo;
        this.pageSize = pageSize;
        this.totalNum = totalNum;
        this.list = list;
    }
    public List<T> getList() {
        return list;
    }
    public void setList(List<T> list) {
        this.list = list;
    }
}

具体实现类里包括分页操作

public class EmpDAOImpl extends DAO<Emp> implements EmpDAO{ 

    @Override
    public int getCount() throws Exception {    //用于获取分页的总数据是多少
        Connection conn = JDBCTools.getConnection();
        String sql = "SELECT count(*) from emp";
        Long in =  queryForColumn(conn, sql);
        int ins=Integer.parseInt(""+in);
        return ins;
    }

    @Override
    public Page<Emp> findAll(int pageNo) throws Exception {  //获取当前页码的数据
        Connection conn=JDBCTools.getConnection();
        int begin=(pageNo-1)*3;            
        String sql="select * from emp Limit ?,3";
        List<Emp> list=queryForList(conn, sql,begin);
        Page page=new Page<>(pageNo, 3, (int)getCount(), list);
        return page;
    }
}

测试类中上一页,下一页调用page里的方法获取当前页数就可以,首页,尾页,只需要把当前页数设置为1和最后一页就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • 本文包括:1、分页技术概述2、实现分页3、完善分业——分页工具条4、几种常见的分页工具条 1、分页技术概述 物理分...
    廖少少阅读 4,439评论 0 38
  • (以下使用ssm+jsp实现显示所有电影为例子) 1.封装一个PageBean类 package com.enti...
    何文杰啊阅读 3,809评论 0 0
  • 这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring ...
    杂货铺老板阅读 1,381评论 0 2
  • 一、文本框为字符型 必填项非空校验: 1、必填项未输入--程序应提示错误; 2、必填项只输入若干个空格,未输入其它...
    许小小晴阅读 4,627评论 0 2
  • 不知从什么时候开始,许多人也许感觉攻击鲁迅的“尖刻、好斗,没有包容胸怀” 无论在实践还是理论上已没有多大的攻击...
    林梅英阅读 372评论 1 4