目录gORMxormgORM安装GORM首先,确保你的环境中已经安装了Go和一个支持的数据库驱动。然后通过以下命令安装gorm:goget-ugorm.io/gorm基础概念Model:数据库中的表。Record:表中的行。Field:表中的列。Relat
首先,确保你的环境中已经安装了Go和一个支持的数据库驱动。然后通过以下命令安装gorm:
go get -u gorm.io/gorm
连接数据库
import (
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
func main() {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
}
创建模型 定义一个简单的用户模型:
type User struct {
gorm.Model
Name string
Email string
}
自动迁移
db.AutoMigrate(&User{})
创建记录
db.Create(&User{Name: "张三", Email: "zhangsan@example.com"})
查询记录
var user User
db.First(&user, 1) // 根据主键查询
示例代码:
type Profile struct {
gorm.Model
UserID uint
User User
}
db.Model(&Profile{}).Association("User").Set(&User{})
批量操作
users := []User{{Name: "李四"}, {Name: "王五"}}
db.Create(&users)
事务处理
tx := db.Begin()
tx.Create(&user)
if tx.Error != nil {
tx.Rollback()
} else {
tx.Commit()
}
例如,用户和其个人资料的关系:
type User struct {
gorm.Model
Name string
Email string
ProfileID uint
Profile Profile `gorm:"foreignKey:ProfileID"`
}
type Profile struct {
gorm.Model
Address string
User User `gorm:"foreignKey:ID"`
}
创建和读取关联数据:
// 创建用户及其个人资料
profile := Profile{Address: "上海市"}
db.Create(&profile)
user := User{Name: "张三", Email: "zhangsan@example.com", ProfileID: profile.ID}
db.Create(&user)
// 读取用户及其个人资料
var user User
db.Preload("Profile").First(&user, 1)
fmt.Println... 如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!