HQL查询之分页查询

控制分页Query有两个方法
setFirstResult(int firstResult):设定从那个对象开始检索。
setMaxResults(int maxResult):设置一次最多能检索出对象的数目。
具体例子如下:

//分页查询
	public void pageTest() {
		selectUser(3);
	}
	public void selectUser(int pageSize) {
		// TODO Auto-generated method stub
		Configuration cfg = null;
		SessionFactory sf = null;
		Session session = null;
		Transaction ts = null;
		try {
			sf = hibernateUtil.getSessionFactory();
			session = sf.getCurrentSession();
			ts = session.beginTransaction();
			Query query=session.createQuery("from User");
			List<User> users =query.list();
			int UserCount = users.size();
			int pageCount = 0;
			pageCount = UserCount / pageSize;
			if(UserCount % pageSize != 0) {
				pageCount++;
			}
			for(int i = 0 ; i<pageCount ; i++) {
				System.out.println("第 " + (i+1) +" 页");
				query.setFirstResult(i*pageSize);
				query.setMaxResults(pageSize);
				List<User> users1 =query.list();
				for(User u:users1) {
					System.out.println(u.getName()+"--年龄"+u.getAge());
					//u.toString
				}
			}
			ts.commit();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			if(ts != null) {
				ts.rollback();
			}
		}

查询结果如下:
在这里插入图片描述


版权声明:本文为lixiaozhuozhuo原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。