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 对象来执行各种数据库操作,如下列的创建、读取、更新和删除数据。
- 创建(Create)数据:定义一个与数据库表对应的结构体,并将要插入的数据赋值给结构体的字段。使用 db.Create(&data) 将数据插入数据库表。
goCopy code
type User struct {
ID uint
Name string
Age int
}
// 创建新的用户
user := User{Name: "John", Age: 30}
db.Create(&user)
- 读取(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的用户
- 更新(Update)数据:使用 db.Model(&data).Update("field", value) 更新数据表中的字段值。
goCopy code
// 更新用户
db.Model(&user).Update("Age", 35)
- 删除(Delete)数据:使用 db.Delete(&data) 删除数据表中的数据。
goCopy code
// 删除用户
db.Delete(&user)