跳到主要内容

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是否有上一页