在Hibernate中,分页查询可以通过Query对象的setFirstResult()和setMaxResults()方法实现。主要步骤如下:
- 编写HQL查询语句:
String hql = "from Customer";
- 创建Query对象,并设置分页参数:
- setFirstResult():设置查询的起始位置,索引从0开始。
- setMaxResults():设置每页的记录条数。
Query query = session.createQuery(hql);
query.setFirstResult(3); // 起始位置为第4条记录
query.setMaxResults(5); // 每页5条记录
- 执行查询并获取结果:
List<Customer> list = query.list();
- 计算总记录数:
- 需要执行查询语句count(*)获取总记录数。
String countHql = "select count(*) from Customer";
Query countQuery = session.createQuery(countHql);
Long totalCount = (Long) countQuery.uniqueResult();
- 构建Page对象:
- Page对象封装了分页查询的相关信息,方便前端展示。
Page<Customer> page = new Page<>(3, 5, totalCount, list);
例如,前端可以:
- page.getTotalCount():获取总记录数
- page.getResult():获取当前页数据列表
- page.getCurrentPage():获取当前页码
- page.getPageSize():获取每页条数
- 等等