gorm实现分页查询
时间: 2024-10-18 15:08:00 浏览: 34
Grails GORM查询.pdf
在GORM(Go语言的ORM库)中,实现分页查询非常直观,你可以使用`Offset()`和`Limit()`函数来获取指定范围的数据。以下是一个基本的例子:
```go
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql" // 这里假设你正在使用的数据库是MySQL
)
type User struct {
gorm.Model
Name string `gorm:"column:name"`
}
func main() {
db, err := gorm.Open("mysql", "user:password@tcp(localhost:3306)/dbname?charset=utf8&parseTime=True&loc=Local")
if err != nil {
panic("failed to connect database")
}
defer db.Close()
var users []User
page := 1 // 当前页码
size := 10 // 每页大小
offset := (page - 1) * size
db.Limit(size).Offset(offset).Find(&users)
// 现在(users)就是第一页的用户数据
// 如果需要处理分页、总记录数等信息,可以进一步处理db.RowsAffected()
}
```
在这个例子中,`Limit(size)`设置了每页显示的记录数,`Offset(offset)`则根据当前页码计算偏移量,以便跳过前面的记录。`Find(&users)`则是实际执行SQL查询并将结果填充到`users`切片中。
阅读全文