分页对象
dbVisitor 提供了一个分页查询工具类 PageObject
, 它实现了 Page
接口。并提供了如下一些工具属性/方法。
名称 | 描述 |
---|---|
属性 pageSize | 分页查询的页大小,默认是 -1 表示无穷大 |
属性 currentPage | 当前页号 |
属性 pageNumberOffset | 页码偏移量(例如:从 1 页作为起始页,可以设置为 1 。否则第一页的页码是 0 ) |
方法 long getFirstRecordPosition() | 获取本页第一个记录的索引位置 |
方法 long getTotalPage() | 获取总页数 |
方法 long getTotalCount() | 获取记录总数 |
方法 long firstPage() | 移动到第一页 |
方法 void previousPage() | 移动到上一页 |
方法 void nextPage() | 移动到下一页 |
方法 void lastPage() | 移动到最后一页 |
方法 Map<String, Object> toPageInfo() | 获取分页信息 |
toPageInfo
方法会返回如下一个分页查询 Map。
{
"enable" : true, // 是否启用分页
"pageSize" : 20, // 页大小
"totalCount" : 200, // 总记录数
"totalPage" : 10, // 页总数
"currentPage" : 0, // 当前页码
"recordPosition" : 0// 第一条记录的起始记录位置
}
自定义方言
和方言相关的接口一共有 5 个,其中 SqlDialect 是所有其它接口都继承的公共接口。
- SqlDialect 基础接口,负责管理关键词清单、生成表名、列名、排序时列名
- ConditionSqlDialect 负责条件相关的生成,例如:like 语句
- InsertSqlDialect 负责高级 insert 语句生成,例如:处理冲突策略
- PageSqlDialect 负责分页语句生成。
- SeqSqlDialect 负责执行序列的语句生成。
提示
继承 AbstractDialect 抽象类并实现 PageSqlDialect 接口即可自定义分页方言。
- countSql 生成计算 count 的 SQL 语句
- pageSql 生成分页 SQL 语句
注册自定义方言
SqlDialectRegister.registerDialectAlias(JdbcUtils.MYSQL, MyDialect.class);