GoFrame 是一个基于 Go 语言的开发框架,提供了一套 ORM(对象关系映射)库用于操作数据库。下面是一些 GoFrame ORM 中常用的方法操作:

连接数据库

使用 gdb 包来连接数据库:
package main

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

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

    // 配置数据库连接信息
    db.SetConfig(gdb.Config{
        "link":    "root:password@tcp(127.0.0.1:3306)/test",
        "charset": "utf8",
        "debug":   true,
    })

    // 连接数据库
    if err := db.Connect(); err != nil {
        fmt.Println("数据库连接失败:", err)
        return
    }
    
    defer db.Close()
}

查询数据
// 查询单条记录
result, err := db.Table("user").Where("id", 1).One()
if err != nil {
    fmt.Println("查询失败:", err)
    return
}
fmt.Println(result.Map())

// 查询多条记录
results, err := db.Table("user").Where("age > ?", 18).All()
if err != nil {
    fmt.Println("查询失败:", err)
    return
}
fmt.Println(results.List())

插入数据
// 插入单条记录
data := gdb.Map{
    "name": "John",
    "age":  25,
}
_, err := db.Table("user").Data(data).Insert()
if err != nil {
    fmt.Println("插入失败:", err)
    return
}

// 插入多条记录
dataList := gdb.List{
    gdb.Map{"name": "Alice", "age": 22},
    gdb.Map{"name": "Bob", "age": 28},
}
_, err := db.Table("user").Data(dataList).Insert()
if err != nil {
    fmt.Println("插入失败:", err)
    return
}

更新数据
// 更新单条记录
data := gdb.Map{
    "age": 30,
}
_, err := db.Table("user").Data(data).Where("id", 1).Update()
if err != nil {
    fmt.Println("更新失败:", err)
    return
}

// 更新多条记录
data := gdb.Map{
    "age": 30,
}
_, err := db.Table("user").Data(data).Where("age > ?", 25).Update()
if err != nil {
    fmt.Println("更新失败:", err)
    return
}

删除数据
// 删除单条记录
_, err := db.Table("user").Where("id", 1).Delete()
if err != nil {
    fmt.Println("删除失败:", err)
    return
}

// 删除多条记录
_, err := db.Table("user").Where("age < ?", 20).Delete()
if err != nil {
    fmt.Println("删除失败:", err)
    return
}

以上代码仅供参考,具体操作还需要根据实际情况进行调整。请确保你已经在项目中引入了正确的 GoFrame 包,并且数据库连接信息是正确的。


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