以下是一些 GoFrame ORM 中常用操作的示例,包括条件查询、分页查询、事务操作等。

条件查询
package main

import (
"fmt"
"github.com/gogf/gf/database/gdb"
"your_project/model"
)

func main() {
db := gdb.New()

// 条件查询
result, err := db.Model(&model.User{}).
Fields("id, name, age").
Where("age > ?", 18).
OrderBy("age DESC").
Limit(10).
All()

if err != nil {
fmt.Println("查询失败:", err)
return
}

fmt.Println(result)
}

分页查询
package main

import (
"fmt"
"github.com/gogf/gf/database/gdb"
"your_project/model"
)

func main() {
db := gdb.New()

// 分页查询
pageNum := 1
pageSize := 10
result, err := db.Model(&model.User{}).
Fields("id, name, age").
Where("age > ?", 18).
OrderBy("age DESC").
Limit((pageNum-1)*pageSize, pageSize).
All()

if err != nil {
fmt.Println("查询失败:", err)
return
}

fmt.Println(result)
}

事务操作
package main

import (
"fmt"
"github.com/gogf/gf/database/gdb"
"your_project/model"
)

func main() {
db := gdb.New()

// 开启事务
err := db.Transaction(func(tx *gdb.TX) error {
// 插入操作
_, err := tx.Model(&model.User{}).
Data(gdb.Map{"name": "Alice", "age": 25}).
Insert()

if err != nil {
return err
}

// 更新操作
_, err = tx.Model(&model.User{}).
Data(gdb.Map{"age": 26}).
Where("name", "Bob").
Update()

if err != nil {
return err
}

// 提交事务
return nil
})

if err != nil {
fmt.Println("事务执行失败:", err)
return
}

fmt.Println("事务执行成功")
}

这些示例演示了 GoFrame ORM 中一些常用的操作,包括条件查询、分页查询和事务操作。你可以根据具体的业务需求使用相应的方法构建查询和操作。


转载请注明出处:http://www.pingtaimeng.com/article/detail/7643/GoFrame