2.4 分页与排序
创建分页参数
// 基础分页
Page page = Page.build(1, 10); // 第1页,每页10条
// 带排序
Page page = Page.build(1, 10, Order.desc("create_time"));
// 多字段排序
Page page = Page.build(1, 10, Order.desc("create_time"), Order.asc("id"));
// 仅排序,无分页
Page page = Page.build(Order.desc("create_time"));
使用分页
// Pojo 分页
Page<User> page = DB.Pojo.select(User.class)
.eq(User::getStatus, 1)
.page(Page.build(1, 10))
.queryBeanPage();
List<User> records = page.getRecords();
long total = page.getTotal();
// Jdbc 分页
Page<ResultMap> page = DB.Jdbc.select("SELECT * FROM user WHERE status = ?", 1)
.page(Page.build(1, 10, Order.desc("create_time")))
.queryPage();
排序
// 不分页排序
List<User> users = DB.Pojo.select(User.class)
.orderByDesc(User::getCreateTime)
.orderByAsc(User::getId)
.queryBeanList();
// Order 构造
Order.asc("field") // 升序
Order.desc("field") // 降序
Order.ascs("a", "b") // 多字段升序
Order.descs("a", "b") // 多字段降序
分页结果
| 方法 | 返回类型 | 说明 |
|---|---|---|
getRecords() | List<T> | 当前页数据 |
getTotal() | long | 总条数 |
getPages() | int | 总页数 |
getCurrent() | int | 当前页码 |
getSize() | int | 每页条数 |
hasNext() | boolean | 是否有下一页 |
hasPrevious() | boolean | 是否有上一页 |