【HQL简介】
Hibernate Query Language 是面向对象的查询语言,它和SQL相似,提供了丰富灵活的查询能力。在Hibernate提供的各种检索方式中,HQL是使用最广的一种检索方式。介绍完Hibernate的映射,会再详细介绍HQL。【分页查询】
前提:User类、关联映射文件和Hibernate配置文件都已经写好。
实现基本步骤:
1.session创建Query查询,引入Query接口。
2.设置分页查询的初始地址。
3.设置每页查询的数据个数。
4.使用list保存分页查询的数据。
5.使用迭代器打印出list中所有数据。
package com.bjpowernode.hibernate;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
//实现query接口,使用 hql进行分页查询
public void testQuery(){
Session session =null;
try{
session=HibernateUtils.getSession();
session.beginTransaction();
//从User 类查询
Query query=session.createQuery("from User");
//设置查询的初始地址为1.
query.setFirstResult(1);
//设置每页查询的数据个数为2
query.setMaxResults(2);
//使用list保存分页查询的数据
List userList=query.list();
//使用迭代器打印出list中所有数据
for (Iterator iter=userList.iterator(); iter.hasNext();){
User user=(User)iter.next();
System.out.println("id="+ user.getId() + "name="+user.getName());
}
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
} 执行过后,Hibernate打出的SQL语句如下:
Hibernate: select user0_.id as id0_, user0_.name as name0_, user0_.password as password0_, user0_.createTime as createTime0_, user0_.expireTime as expireTime0_ from User user0_ limit ?, ?
id=4028168160bacd670160bace031d0001name=丁满
id=4028168160bad6650160bad6e2f10001name= 彭彭
我们可以看出MySQL中用limit来限制每页个数。
【小结】
HQL实现分页查询很方便,HQL还有很多实用便捷的查询功能,后续博客见~版权声明:本文为W15732624773原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。