【Golang】GORM中实现分页的方法(附详细代码及注释)

Golang&GORM中实现分页的方法(附详细代码及注释)

var total int
page,_          := strconv.Atoi(c.DefaultPostForm("page","1"))
pageSize,_  := strconv.Atoi(c.DefaultPostForm("pageSize","10"))
//此处用了PostForm的请求方法
db = models.db.Model(Student{}) //查询对应的数据库表
 //这里的models是对数据库进行初始化以及Gorm中的model结构体定义,如下:
/* 
var db *gorm.DB
type Model struct {
	ID         int        `gorm:"primary_key" json:"id"`
	CreatedOn  int        `json:"-"`
	ModifiedOn int        `json:"-"`
	DeletedAt  *time.Time `json:"deleted_at,omitempty"`
}*/
if err := db.Count(&total).Error; err != nil{
    c.JSON(http.StatusOK, gin.H{
        "code" : 500,
        "message" : "查询数据异常",
    })
    return
}
//此时的total是查询到的总数
offset := (page-1)*pageSize
if err := db.Order("id DESC").offset(offset).Limit(pageSize).Find(&data).Error;err != nil{
    c.JSON(http.StatusOK, gin.H{
        "code" : 500,
        "message" : "查询数据异常",
    })
    return
}

c.JSON(http.StatusOK, gin.H{
    "code":    200,
    "message": "success",
    "data"   : map[string]interface{}{
        "data" : data,
        "total": total,
        "page" : page,
        "pageSize": pageSize,
    },
})
return 
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值