GORM(Go Object Relational Mapper)是一个用于Go语言的ORM库,它支持多种数据库。GORM提供了一系列方法和功能来执行常见的SQL操作。以下是GORM支持的一些主要类型的SQL操作:
-
创建(Create):用于向数据库中插入新记录。
db.Create(&user)
-
查询(Query):用于从数据库中检索记录。
db.First(&user, 1) // 根据整型主键查找 db.First(&user, "name = ?", "John") // 查找名为John的用户 db.Find(&users) // 获取所有用户
-
更新(Update):用于修改数据库中的记录。
db.Model(&user).Update("name", "NewName") // 更新user的name为NewName db.Model(&user).Updates(User{Name: "NewName", Age: 18}) // 更新user的多个字段
-
删除(Delete):用于从数据库中删除记录。
db.Delete(&user, 1) // 删除主键为1的用户 db.Delete(&user, "name = ?", "John") // 删除名为John的用户
-
关联(Associations):用于处理模型之间的关系,如一对一、一对多、多对多等。
db.Model(&user).Association("Orders").Append(&order) // 将order添加到user的Orders关联中 db.Model(&user).Association("Orders").Delete(&order) // 从user的Orders关联中删除order db.Model(&user).Association("Orders").Replace(&orders) // 替换user的Orders关联为orders
-
事务(Transactions):用于在一组操作中保持数据的一致性。
tx := db.Begin() tx.Create(&user) tx.Create(&order) tx.Commit() // 提交事务 tx.Rollback() // 回滚事务
-
迁移(Migrations):用于自动创建或修改数据库表结构。
db.AutoMigrate(&User{}, &Order{}) // 自动迁移User和Order模型
-
预加载(Preloading):用于自动填充关联数据。
db.Preload("Orders").Find(&users) // 预加载用户的订单信息
-
插件(Plugins):GORM支持插件扩展,可以使用第三方插件为GORM添加新功能。
这些操作只是GORM支持的一部分,GORM还提供了许多其他功能和选项,如钩子(Hooks)、日志(Logger)、错误处理(Error Handling)等。你可以查阅GORM的官方文档以获取更多详细信息和示例。