GORM(Go Object-Relational Mapping)是一个用于Go语言的ORM库,它提供了一种简单、优雅的方式来操作数据库。GORM支持多种数据库,包括MySQL、PostgreSQL、SQLite和SQL Server。以下是GORM的一些主要特性:
以下是一些基本的GORM操作:
在Go项目中,你可以使用以下命令来安装GORM:
$ go get -u gorm.io/gorm
GORM支持多种类型的数据库,例如MySQL,SQLite,PostgreSQL等。以下是一个连接到MySQL数据库的示例:
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
}
在GORM中,你可以通过定义Go结构体来创建数据库表。例如:
type Product struct {
gorm.Model
Code string
Price uint
}
然后,你可以使用AutoMigrate
函数来自动创建表:
db.AutoMigrate(&Product{})
使用Create
函数可以在数据库中创建新的记录:
db.Create(&Product{Code: "D42", Price: 100})
GORM提供了多种方法来查询数据库中的记录。例如:
// 获取第一条记录,按主键排序
var product Product
db.First(&product, 1) // 查询id为1的product
// 获取最后一条记录
db.Last(&product)
// 获取所有记录
var products []Product
db.Find(&products)
// 使用条件查询
db.Where("price = ?", 100).First(&product)
你可以使用Save
或Updates
函数来更新数据库中的记录:
// 更新product的price
db.Model(&product).Update("Price", 200)
// 更新多个字段
db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // 非零字段
db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})
使用Delete
函数可以删除数据库中的记录:
db.Delete(&product, 1)
以上是GORM的基本使用方法,更多详细的信息和高级用法,可以参考GORM的官方文档:http://gorm.io/docs/index.html。
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
author: mengbin
blog: mengbin
github: mengbin92
cnblogs: 恋水无意