GORM 更新操作:深入探索 Go 语言中的数据库记录修改
package main
import (
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type Product struct {
gorm.Model
Code string
Price uint
}
func main() {
// 连接数据库
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("数据库连接失败")
}
// 迁移数据库表
db.AutoMigrate(&Product{})
// 插入一条记录
db.Create(&Product{Code: "L1212", Price: 1000})
// 更新记录 - 方法1: 使用Update方法
db.Model(&Product{}).Where("code = ?", "L1212").Update("price", 1500)
// 更新记录 - 方法2: 使用Updates方法更新多个字段
db.Model(&Product{}).Where("code = ?", "L1212").Updates(Product{Price: 2000, Code: "L4321"})
// 更新记录 - 方法3: 使用FirstOrCreate获取记录然后更新
var product Product
db.FirstOrCreate(&product, Product{Code: "L4321"}) // 如果不存在则创建
product.Price = 2500
db.Save(&product)
// 查询并输出结果
var products []Product
db.Find(&products)
for _, item := range products {
fmt.Printf("Code: %s, Price: %d\n", item.Code, item.Price)
}
}
这段代码展示了如何在Go语言中使用GORM库进行数据库记录的更新操作。代码首先创建了一个名为Product
的结构体来表示数据库中的一张表,并定义了模型的字段。然后,代码创建了一个SQLite数据库的连接,迁移了数据库表,并插入了一条新记录。接下来,代码展示了三种不同的更新记录的方法:使用Update
方法更新单个字段,使用Updates
方法更新多个字段,以及使用FirstOrCreate
和Save
方法查询记录并更新。最后,代码查询并输出了所有记录的信息。
评论已关闭