GORM的使用 | 青训营

46 阅读3分钟

gorm介绍

  • Gorm是一个流行的Go语言ORM(对象关系映射)库,用于简化数据库操作。它提供了一个简洁的API,使得在Go程序中进行数据库查询、插入、更新和删除等操作更加方便。

连接(以使用mysql为例)

  • 先导入两个包
```go get gorm.io/gorm
```go get gorm.io/driver/mysql

要是失败就在go get 后面加上-u。

  • 连接数据库。

eg:

````func ConnectDB() (*gorm.DB, error) { 
        dsn := "user:password@tcp(host:port)/database?charset=utf8mb4&parseTime=True&loc=Local" 
        db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) 
        if err != nil { 
            return nil, err 
        }
        return db, nil 
        }`

user:password:这是连接数据库所需的用户名和密码。你需要将其替换为你实际使用的用户名和密码。

tcp(host:port):这是数据库服务器的主机名和端口号。你需要将host替换为实际的主机名或IP地址,将port替换为实际的端口号。

/database:这是要连接的数据库的名称。你需要将其替换为你要连接的实际数据库名称。

?charset=utf8mb4&parseTime=True&loc=Local:这是一些连接选项,用于设置字符集、解析时间和本地化等。charset=utf8mb4 指定了字符集为 UTF-8,parseTime=True 表示Gorm将自动解析数据库中的时间字段,loc=Local表示使用本地时区。

gorm.Open() 是 GORM 提供的函数,用于打开数据库连接。它接受两个参数:数据库驱动和连接字符串。

mysql.Open(dsn) 是使用 MySQL 驱动程序打开数据库连接的方式。你可以根据实际情况选择其他数据库驱动,例如 PostgreSQL、SQLite 等。

dsn 是连接字符串,包含了数据库的相关信息,如用户名、密码、主机和端口号等。你需要根据你的数据库配置进行相应的修改。

&gorm.Config{} 是 GORM 的配置选项,用于配置 GORM 的行为。在这个例子中,我们使用了空的配置,表示使用默认的配置选项。

这行代码返回了两个值:db 和 err。db 是一个 GORM 的 *gorm.DB 对象,它代表了数据库连接。err 是一个可能发生的错误,如果连接成功,它将为 nil。在后续的代码中使用 db 对象来执行各种数据库操作,如下列的创建、读取、更新和删除数据。

  1. 创建(Create)数据:定义一个与数据库表对应的结构体,并将要插入的数据赋值给结构体的字段。使用 db.Create(&data) 将数据插入数据库表。
goCopy code

type User struct {
    ID   uint
    Name string
    Age  int
}

// 创建新的用户
user := User{Name: "John", Age: 30}
db.Create(&user)
  1. 读取(Retrieve)数据:定义一个与数据库表对应的结构体,并使用 db.Find(&data) 获取所有数据,或使用 db.First(&data, condition) 获取满足条件的单个数据。
goCopy code

// 获取所有用户
var users []User
db.Find(&users)

// 获取单个用户
var user User
db.First(&user, 1) // 获取ID为1的用户
  1. 更新(Update)数据:使用 db.Model(&data).Update("field", value) 更新数据表中的字段值。
goCopy code

// 更新用户
db.Model(&user).Update("Age", 35)
  1. 删除(Delete)数据:使用 db.Delete(&data) 删除数据表中的数据。
goCopy code

// 删除用户
db.Delete(&user)