为了账号安全,请及时绑定邮箱和手机立即绑定

Hibiernate+struts2分页

标签:
JavaScript

如果使用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;    }}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消