主要用到GORM检索的时候给定的API  Limit & OffsetLimit指定获取记录的最大数量Offset指定在开始返回记录之前要跳过的记录数量
在接受参数的时候,需要指定 page和pageSize一个默认的值,这样可以实现可选参数的目的
api.go
func GetAllUsers(c *gin.Context) {page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))pageSize, _ := strconv.Atoi(c.DefaultQuery("pageSize", "5"))code, msg, data := sql.GetAllUser(page, pageSize)if code == 4000 {c.JSON(http.StatusBadRequest, gin.H{"code": code,"msg": msg,"status": "failed",})} else if code == 5000 {c.JSON(http.StatusOK, gin.H{"code": code,"msg": msg,"status": "ok","data": data,})}}
sql.go
func GetAllUser(page int, pageSize int) (int, string, []dao.User) {var userList []dao.User// 根据传入的page和pageSize计算需要返回哪些数据result := dao.GormDB.Table("user").Limit(pageSize).Offset((page - 1) * pageSize).Find(&userList)if result.Error != nil {return 4000, result.Error.Error(), userList}return 5000, "success", userList}
不传入page和pageSize的时候,会默认返回第一页的前五条数据
也可以指定返回第二页的前三条数据
