从3开始,在业务系统中增加分页功能

简介: 从3开始,在业务系统中增加分页功能

本次我们接着上三篇文章进行讲解《从0开始,用Go语言搭建一个简单的后端业务系统》《从1开始,扩展Go语言后端业务系统的RPC功能》《从2开始,在Go语言后端业务系统中引入缓存》

这一节相对比较的简单,增加分页功能的实现利用了gorm的封装的方法并且同步更改了Gin的接收参数,进而实现了分页功能。

设计逻辑

SQL语法SELECT * FROM table LIMIT 10 OFFSET 5 ,翻译过来就行从5开始取10条数据,OFFSET可以理解成跳过这几行从后面开始取数据,LIMIT就是取几行数据。

因此我们在gorm中就可以利用封装好的API,如Limit()和Offset()等,但是需要两个参数,一个就是page代表第几页,另一个则是limit代表每页多少条数据,接下来写代码。

下面我们看下修改后的代码

dao层实现方法:

......
func (impl CountNumDAOImpl) FindAllNumInfo(ctx context.Context, page int, limit int) []entity.NumInfo {
   var infos []entity.NumInfo
   if page <= 0 || limit <= 0 {
      impl.db.Find(&infos)
   } else {
      impl.db.Limit(limit).Offset((page - 1) * limit).Find(&infos)
   }
   return infos
}
......
复制代码

controller层接口:

......
func (impl NumInfoControllerImpl) FindAll(c *gin.Context) {
   page := c.Query("page")
   limit := c.Query("limit")
   numInfos := impl.dao.FindAllNumInfo(c, cast.ToInt(page), cast.ToInt(limit))
   c.JSON(200, map[string]interface{}{"code": 0, "msg": "", "count": len(numInfos), "data": numInfos})
}
......
复制代码

测试:

网络异常,图片无法展示
|


分页后的结果:

网络异常,图片无法展示
|


相关文章
|
存储 C++ 索引
c++数据结构
c++数据结构
169 3
|
JSON 前端开发 开发工具
初探在WSL中设置vim前端开发环境
初探在WSL中设置vim前端开发环境
|
人工智能 搜索推荐 算法
📈业绩飙升的秘密:AI驱动的个性化营销策略,职场营销新高度!
【8月更文挑战第1天】在激烈的商业竞争中,AI驱动的个性化营销正成为企业突破的关键。通过大数据收集用户多维度信息,形成精准用户画像;利用智能推荐系统实现“千人千面”,大幅提升用户满意度和转化率;并通过实时优化策略快速响应市场变化。简化的Python示例展示了基于用户画像的推荐算法应用。AI营销以其高效灵活的特点,已成为职场营销的新常态,助力企业在数据时代掌握营销主动权。
221 0
|
开发者
Flutter笔记:Widgets Easier组件库(12)使用消息吐丝(Notify Toasts)
Flutter笔记:Widgets Easier组件库(12)使用消息吐丝(Notify Toasts)
183 0
|
Web App开发 数据可视化 JavaScript
动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper
动画墙纸:将视频、网页、游戏、模拟器变成windows墙纸——Lively Wallpaper
443 0
|
XML 人工智能 前端开发
软件测试/人工智能|selenium元素定位方式大全
软件测试/人工智能|selenium元素定位方式大全
BXA
|
数据采集 人工智能 数据可视化
Python数据可视化工具介绍
Python数据可视化是利用Python语言和相关工具包对数据进行可视化展示的技术,其能够通过图表、图形等方式直观地展示数据的特征和规律,让我们更好地理解数据。
BXA
964 0
|
存储 消息中间件 缓存
Redis分片集群的探讨
随着互联网应用的发展和数据量的不断增长,单机的Redis已经无法满足高并发和大规模数据存储的需求。为了解决这个问题,Redis引入了分片集群的概念。本文将探讨Redis分片集群的原理、实现方式以及相关的注意事项。
437 0
|
JavaScript 前端开发