hibrnate教程4~hibrnate的分页查询操作

分页查询需要两个属性:1.总记录数,2.每页的数据

了解了这两个重要的属性,那分页的思路也就了解一般了,

第一步创建分页实体对象

第二步根据hibrnate查询数据库数据

第三步返回数据个实体对象

1.

public class QueryResult {
    private int count; // 总记录数
    private List list; // 一页的数据

    public QueryResult(int count, List list) {
        this.count = count;
        this.list = list;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public List getList() {
        return list;
    }

    public void setList(List list) {
        this.list = list;
    }

}

2.写DAO

public QueryResult findAll(int firstResult, int maxResults) {
        Session session = HibernateUtils.openSession();
        Transaction tx = null;
        try {
        tx = session.beginTransaction();

        List<User> list = session.createQuery(//
        "FROM User")//
        .setFirstResult(firstResult)//从结果列表中的哪个索引开始取数据
        .setMaxResults(maxResults)//最多取多少条数据
        .list();

        // 查询总记录数
        Long count = (Long) session.createQuery(//
        "SELECT COUNT(*) FROM User")//
        .uniqueResult();
        tx.commit();

        //  返回结果
        return new QueryResult(count.intValue(), list);
        } catch (RuntimeException e) {
        tx.rollback();
        throw e;
        } finally {
        session.close();
        }
        }

3.进行测试

@Test
public void testFindAllIntInt() {
        // 查询
        // QueryResult qr = userDao.findAll(0, 10); // 第1页,每页10条
        // QueryResult qr = userDao.findAll(10, 10); // 第2页,每页10条
        QueryResult qr = userDao.findAll(20, 10); // 第3页,每页10条

        // 显示结果
        System.out.println("总记录数:" + qr.getCount());
        for (User user : (List<User>) qr.getList()) {
        System.out.println(user);
        }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值