使用数据库的应用程序,多数情况下都需要使用 “分页” 这个功能。尤其是在 Web 应用程序中,后端的分页查询尤其的普遍。 在以往的使用经验中,一个分页查询,除了能获取到一个列表外,我们通常需要如下几个信息才能在客户端显示出一个完整的翻页条。
当我们获得了这四条信息后,对于维护一个翻页查询就足够。
Nutz.Dao 的查询接口天然就支持分页查询。
让我们先看看 Nutz.Dao 接口查询函数的声明:
<T> List<T> query(Class<T> classOfT, Condition condition, Pager pager);
这个接口有三个参数
Pager 对象有如下几个注意事项:
public QueryResult getPetList(Dao dao, int pageNumber, int pageSize){
Pager pager = dao.createPager(pageNumber, pageSize);
List<Pet> list = dao.query(Pet.class, null, pager);
pager.setRecordCount(dao.count(Pet.class));
return new QueryResult(list, pager);
}
Nutz 会自动为各种不同的数据库,根据你传入的 Pager 生成翻页方言。但是考虑到效率因素, Nutz.Dao 并不会为 Pager 计算结果集的总数。我知道这那么一点点让人觉得有点不方便,但是我想给你 控制权,我想让你可以: "只在必要的时候才计算结果集的总数",我想,这个控制权对你来说,比少写 一行CRUD代码更加重要,对吗?
本页面的文字允许在知识共享 署名-相同方式共享 3.0协议和GNU自由文档许可证下修改和再使用。