继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Hibiernate+struts2分页

零基础h5前端入门培训
关注TA
已关注
手记 301
粉丝 37
获赞 253

如果使用Hibernate的话,她里面的Query有这么两个方法,可以查询出第x到第y条的信息,由此我们可以只要知道,只要有当前页的页码(page)和总记录条数(number),就可以实现分页查询。Query两个方法如下:

Query query = session.createQuery("from Products");query.setFirstResult();// (当前页面-1)X每页条数query.setMaxResults(); // 每页的条数

当然,我这个是用Hibernate+struts2做的,首先需要构建自己的分页类FenYe.class

分页类:

public class FenYe {   private int first = 0;       // 第一条记录   private int max = 5;       // 每页显示的记录条数   private Integer page;     // 输入页数   private int curr_page;    // 当前页数   private int pages;        // 总的页数   private Integer number; // 总的记录数   //     第一页   public void firstListener() {          page=1;                                     //输入页=第一页          first=0;                                       //第一条记录=0          curr_page = page;                      //当前页=输入页   }   // 最后一页   public void lastListener() {          page = pages;                              //输入页=总页数          curr_page=page;                         //当前页=输入页          first = (pages - 1) * max;             //第一条记录=(当前页-1)*每页显示记录的条数   }   //中间页   public void gotoListener() {          curr_page = page;                        //当前页=输入页          first = (curr_page - 1) * max;       //第一条记录=(当前页-1)*每页显示记录的条数   }    // 判断是否是第一页或者最后一页    public FenyeService fenYe(Integer page, Integer number) {        // 设定输入的页数        this.setPage(page);        // 设定总记录数        this.setNumber(number);        // 初始化总页数        this.setPages(number);        if (page > 0 && page <= this.pages) { // 如果输入页数>0<总的页数            this.gotoListener();        } else if (page <= 0 || number == 0) { // 如果输入页数<0或者没有数据的时候            this.firstListener();        } else if (page > this.pages) { // 如果输入页数>总页数            this.lastListener();        }        // 返回自身        return this;    }    public static void main(String[] args) {        FenYe fenye = new FenYe();        fenye.setNumber(11);        fenye.setPage(3);        fenye.fenYe();        System.out.println("第一条记录first:" + fenye.getFirst());        System.out.println("每页显示的记录数max:" + fenye.getMax());        System.out.println("输入页数page:" + fenye.getPage());        System.out.println("当前页数curr_page:" + fenye.getCurr_page());        System.out.println("总页数pages:" + fenye.getPages());        System.out.println("总记录条数number:" + fenye.getNumber());    }    ...    中间的get、set方法就不贴出来了    ...    /*     *      * 对pages的set方法作出如下修改     *      * 计算总页数     *      * 如果被整除:总页数=总数据条数/每页显示的条数     *      * 如果有余数:总页数=总数据条数/每页显示的条数(取整数)+1     */    public void setPages(int number) {        this.pages = number % max == 0 ? number / max : number / max + 1;    }}

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP