在 GoFrame ORM 中,通过链式操作进行写入(Insert)和保存(Save)是很常见的操作。下面是一个简单的例子,演示如何使用链式操作进行写入和保存:

写入数据(Insert)
package main

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

func main() {
// 创建数据库连接
db := gdb.New()

// 创建一个新的用户
newUser := &model.User{
Name:     "John Doe",
Age:      25,
Birthday: time.Now(),
}

// 链式操作进行插入
_, err := db.Model(&model.User{}).Data(newUser).Insert()
if err != nil {
fmt.Println("插入失败:", err)
return
}

fmt.Println("插入成功")
}

在上述代码中,我们通过 Data 方法设置要插入的数据,然后使用 Insert 方法进行插入操作。Model 方法用于指定要操作的模型。

保存数据(Save)

保存操作会根据数据的主键进行判断,如果主键存在,则执行更新操作,如果主键不存在,则执行插入操作。
package main

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

func main() {
// 创建数据库连接
db := gdb.New()

// 创建一个新的用户
newUser := &model.User{
Name:     "John Doe",
Age:      25,
Birthday: time.Now(),
}

// 链式操作进行保存
_, err := db.Model(&model.User{}).Data(newUser).Save()
if err != nil {
fmt.Println("保存失败:", err)
return
}

fmt.Println("保存成功")
}

在上述代码中,我们通过 Data 方法设置要保存的数据,然后使用 Save 方法进行保存操作。Model 方法用于指定要操作的模型。

这两个操作都是通过链式操作来构建出完整的写入或保存操作,使得代码更为简洁和可读。在实际应用中,你可以根据业务需求设置相应的数据并使用链式操作执行写入或保存操作。


转载请注明出处:http://www.zyzy.cn/article/detail/7633/GoFrame