一.分页查询
setFirstResult()
方法能够设置第一条数据的开始位置
setMaxResults()
方法能够设置本次查询的数据条数
二.分页查询代码实现
public void queryPage(int pageNum, int countNum)
{
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");
query.setFirstResult((pageNum - 1) * countNum);
query.setMaxResults(countNum);
List<User> userList = query.list();
query = session.createQuery("select round(count(u) / :num) from User u");
query.setParameter("num", (long)countNum);
long totalPage = (long)query.uniqueResult();
for (User user : userList) {
System.out.println(user.toString());
}
System.out.println("第" + pageNum + "页,"+ userList.size() + "条数据,共" + totalPage + "页");
ts.commit();
} catch (HibernateException e) {
e.printStackTrace();
if (ts != null){
ts.rollback();
}
}
}
主函数:
public static void main(String[] args) {
PageQuary pageQuary = new PageQuary();
pageQuary.queryPage(1,5);
}
三.结果