DBAPI如何优雅的实现分页查询功能

news/2025/2/23 18:37:24

DBAPI_0">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参数每次都要根据pageNopageSize动态计算,offset=(pageNo-1)*pageSize
  • 为了解决这个动态计算的需求,DBAPI提供了参数处理插件,可以对请求参数进行用户自定义的处理,并且官方已经实现了分页插件,该插件已经上传到插件市场,用户下载使用即可。

下面具体来看插件如何使用

分页插件使用

  1. 访问插件市场,下载分页插件,上传到DBAPIextlib目录或者lib目录下,重启DBAPI服务

  1. 创建API,添加参数pageNo pageSize

API必须至少包含两个参数,pageNopageSizepageNo表示当前第几页,pageSize表示每页显示的条数

  1. sql编写

sql中使用参数offsetpageSizeoffset表示查询记录的开始位置,pageSize表示每页显示的条数

select * from t_city limit #{offset}, #{pageSize}

  1. 全局插件-参数处理中选择分页插件

插件参数不用填写,非必填

  1. 测试

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

注意

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


http://www.niftyadmin.cn/n/5863673.html

相关文章

分页功能组件开发

分页功能组件开发 一、前言 在进行pythonWeb的开发的过程中,常常用到分页功能,我刚开始进行分页功能开发的时候没有将这个功能单独分开,导致代码的逻辑界面比较复杂。为了给每个页面进行分页功能的开发,同时避免重复编写代码&am…

brew Nushell mac升级版本

运行命令: brew upgrade nushell 国内更新比较慢建议架个梯子。 如果没有更新则先更新一下brew brew update 更新后看下版本是否死最新的了

医疗报销系统的设计与实现(代码+数据库+LW)

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,报销单信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足…

AtCoder Beginner Contest (ABC)394(ABCD)

前言 很激动啊!!ABC第一次在限定的时间内写出四个题!!虽然离大佬们还差很多,中间走了不少弯路,但还是很激动啊!!加油加油!!每天进步一点点!&…

在Linux上安装和使用Docker

在Linux上安装和使用Docker:一步步指南 Docker是一种流行的容器化平台,它可以帮助开发者轻松构建、部署和运行应用程序。在本文中,我们将介绍如何在Linux系统上安装Docker,并提供一些常用的Docker命令和使用说明。 1. 安装Docke…

深入剖析抽象工厂模式:设计模式中的架构利器

深入剖析抽象工厂模式:设计模式中的架构利器 在软件开发领域,设计模式是解决常见问题的通用方案,而抽象工厂模式作为创建型设计模式的重要一员,在构建复杂软件系统时发挥着关键作用。它为创建一系列相关或相互依赖的对象提供了一…

【Winform】深入理解C#中的异常处理:以WinForms应用程序为例

文章目录 前言一、示例背景二、异常处理分析三、异常处理的重要性结论 前言 在编程过程中,异常处理是一项至关重要的技能。它能够帮助我们优雅地处理运行时错误,从而增强程序的健壮性和用户体验。今天,我们将通过一个简单的WinForms应用程序…

uniapp h5端和app端 使用 turn.js

前提:添加页后,添加页与当前页会重叠在一起,不知道为什么,没有找到解决办法 1.h5端 <template><view class"container"><view id"flipbook"><view class"page page1">Page 1</view><view class"page pag…