DBAPI如何优雅的实现分页查询功能
DBAPI如何优雅的实现分页查询功能
背景
-  
分页查询的时候,用户往往需要传入当前第几页
pageNo和每页显示的条数pageSize参数,根据这两个参数,从数据库中查询出当前页的数据。 -  
以mysql为例,分页查询的sql语句如下:
 
select * from t_user limit 30,10
 
limit 30,10表示从第31条记录开始,查询10条记录。
参数动态计算
- 在DBAPI中参数注入sql的话就要写成
 
select * from t_user limit #{offset}, #{pageSize}
 
- 而这里的
offset参数每次都要根据pageNo和pageSize动态计算,offset=(pageNo-1)*pageSize - 为了解决这个动态计算的需求,DBAPI提供了
参数处理插件,可以对请求参数进行用户自定义的处理,并且官方已经实现了分页插件,该插件已经上传到插件市场,用户下载使用即可。 
下面具体来看插件如何使用
分页插件使用
- 访问插件市场,下载分页插件,上传到DBAPI的
extlib目录或者lib目录下,重启DBAPI服务 

- 创建API,添加参数
pageNopageSize 
API必须至少包含两个参数,pageNo和pageSize,pageNo表示当前第几页,pageSize表示每页显示的条数

- sql编写
 
sql中使用参数offset和pageSize,offset表示查询记录的开始位置,pageSize表示每页显示的条数
select * from t_city limit #{offset}, #{pageSize}
 

全局插件-参数处理中选择分页插件
插件参数不用填写,非必填

- 测试
 
保存API,请求测试可以看到分页成功。


注意
注意此插件在个人版4.0.16及以上、企业版4.1.10及以上版本支持
