Hibernate QBC 分页

利用Hibernate 使用QUC分页
其简单得功能为:
1.通过输入第一条数据的位置和每页现实的数据来确定数据
2.并可以通过输入页数来显示各个页数的数据
程序主要代码:
public void testPageQuery(){

    SessionFactory sf = null;
    Session session0 = null;
    Transaction tx = null;
    try {
        while(true){
            sf = HibernateUtil.getSessionFactory();
            session0 = sf.getCurrentSession();
            tx = session0.beginTransaction();
            Criteria criteria = session0.createCriteria(User.class);
            System.out.println("请分别输入第一条数据的位置和一页显示的数据个数:");
            Scanner sc = new Scanner(System.in);
            Scanner sc1 = new Scanner(System.in);
            int firstD = sc.nextInt();
            int maxR = sc1.nextInt();

            criteria.setFirstResult(firstD);
            criteria.setMaxResults(maxR);
            List<?> users = criteria.list();
            for(int i =0;i<users.size();i++){
                User u = (User)users.get(i);
                System.out.println("姓名: " + u.getName() + "性别: "
                        + u.getGender() + "年龄" + u.getAge());

            }
            System.out.println("请输入你要跳转的页面:");
            Scanner sc2 = new Scanner(System.in);
            int pageNum = sc2.nextInt();
            int firstData = firstD + pageNum * maxR;
            criteria.setFirstResult(firstData);
            criteria.setMaxResults(maxR);
            List<?> users1 = criteria.list();
            for(int i =0;i<users1.size();i++){
                User u = (User)users1.get(i);
                System.out.println("姓名: " + u.getName() + "性别: "
                        + u.getGender() + "年龄" + u.getAge());
            }
            tx.commit();
        }
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        tx.rollback();
    }finally{
        session0.close();
        sf.close();
    }
}

原文地址:http://blog.51cto.com/11156310/2106048

时间: 2024-11-04 03:53:07

Hibernate QBC 分页的相关文章

hibernate 的分页查询

hibernate的分页查询有个好处,就是不用管数据库方言.比如db2的分页查询很麻烦,但是用hibernate的方式,就完全不用管这些了 /* 使用HQL分页查询Customer信息 */ public static List<Customer> listPageCustomer_HQL(int pageNo, int perPageNum) { Session session = HibernateUtils.getSession(); String hql = "from Cu

hibernate—QBC

QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口.我们看下面的示例程序: Criteria criteria=session.createCriteria(User.class);   criteria.add(Expression.eq("name","zx"));   criteria.add(Expression.eq("age

struts2+spring+hibernate 实现分页

在这里要感谢下这位博友发表的博文 http://www.blogjava.net/rongxh7/archive/2008/11/29/243456.html 通过对他代码的阅读,从而自己实现了网页分页功能,下面给大家分享下我的代码 1.entity实体类 我项目例子的实体类叫News 2.DAO接口的设计,定义一个NewsDAO接口,里面声明了两个方法: public interface NewsDAO { public int getAllRowCount(String hql); publ

hibernate QBC日期查询

使用QBC方式查询数据库,如果查询条件包含日期,则比较难以处理,尤其是在不是简单的在某个日期之前,或在某个日期之后的情况时,不能用hibernate常用方式,要用原生sql语句执行查询. 1.hibernate常用方式 方法                          说明        Restrictions.eq           =       Restrictions.allEq        利用Map来进行多个等于的限制        Restrictions.gt    

hibernate做分页查询

1.分页查询所需条件(当前页面数 初始化为1,每页显示的数据条数,最大页码数,数据总条数) 2.将所需数据传入后台(pageNum) 查询所有的数据条数(QBC查询) 根据条件查询显示的数据 3.最终显示结果

Hibernate实现分页查询

分页查询就是把数据库中某张表的记录数进行分页查询,在做分页查询时会有一个Page类,下面是一个Page类,我对其做了详细的注解: 1 package com.entity; 2 /** 3 * @author:秦林森 4 */ 5 6 import javax.persistence.criteria.CriteriaBuilder; 7 8 public class Page { 9 /** 10 * 其中currentPage,perPageRows这两个参数是做分页查询必须具备的参数 11

hibernate实现分页

创建以实现分页的工具类 package com.jdztc.entity; import java.util.List; /** * 这是实现分页的工具类 * @author 付鹏鹏 * */ public class PageModel { private int currPage;//当前页 private int totalRecords;//总的记录数 private List<?> list;//结果集 private int pageSize;//每页记录数 private int

Hibernate 映射文件的配置 核心文件的配置 一对一 一对多 多对多 hibernate实现分页 Hibernate中session的关闭问题总结

以留言系统为实例 1 .配置映射文件:首先得引入约束dtd <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 然后<hibernate-mapping></hibernate-mapping>映射标签 <

Hibernate QBC运算符

HQL运算符 QBC运算符 含义 = Restrictions.eq() 等于equal <> Restrictions.ne() 不等于not   equal > Restrictions.gt() 大于greater   than >= Restrictions.ge() 大于等于greater   than or equal < Restrictions.lt() 小于less   than <= Restrictions.le() 小于等于less   than