分页查询实现:
public void queryByPage(int pageNum, int countNum){
SessionFactory sf = null;
Session session = null;
Transaction ts = null;
try {
sf = HibernateSingletonUtil.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) {
UserDao ud = new UserDao();
ud.queryByPage(1, 10);
}
查询第1页的数据,每页10条。
该代码示例展示了如何利用Hibernate框架进行分页查询。在Java中,通过SessionFactory获取Session,然后开始事务,创建HQL查询语句,设置查询起始位置和最大结果数来实现分页。同时,计算总页数,最后打印查询结果和页面信息,并提交事务。此段代码适用于后端开发中的数据检索场景。
1259

被折叠的 条评论
为什么被折叠?



