当使用golang编写Web应用程序时,操作数据库是一个必不可少的部分。 Golang可以使用多种ORM(对象关系映射)框架来实现这一目标,其中Gorm是最受欢迎的框架之一。 本篇攻略将详细介绍Gorm的基本使用方法。
1. 起步
1.1 安装
在使用Gorm之前,必须安装它。 可以使用以下命令安装:
go get -u github.com/jinzhu/gorm
1.2 连接数据库
在开始使用Gorm之前,需要先配置数据库连接。下面是一个MySQL数据库的连接示例:
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
func main() {
db, err := gorm.Open("mysql", "username:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local")
defer db.Close()
if err != nil {
panic(err)
}
}
2. 定义模型
2.1 创建表格
可以通过定义结构体来创建一个Gorm模型:
type User struct {
gorm.Model
Name string `gorm:"size:255"`
Email string `gorm:"type:varchar(100);unique_index"`
}
在上面的示例中,User是我们要创建的模型。 这个模型代表一个用户,并有两个字段:Name和Email。 gorm.Model是Gorm提供的一个内置结构体,它包含了id、created_at、updated_at和deleted_at四个字段。 这个结构体可以被嵌入到模型中,用于简化模型的定义。
2.2 Migrations
在创建模型之后,可以使用Gorm的自动迁移功能来创建相应的数据库表格:
db.AutoMigrate(&User{})
3. 增删改查
3.1 创建记录
可以通过以下代码创建一条新的用户记录:
user := User{Name: "Tom", Email: "Tom@gmail.com"}
db.Create(&user)
或者使用以下代码:
user := User{Name: "Tom", Email: "Tom@gmail.com"}
db.NewRecord(user)
db.Create(&user)
在第一个示例中,Create()函数会直接创建并保存该记录。 在第二个示例中,使用NewRecord()函数将记录标记为“new”,然后再使用Create()函数创建记录。
3.2 查询记录
使用Where()函数可以按条件查询记录。例如:
var users []User
db.Where("name = ?", "Tom").Find(&users)
在上面的示例中,使用了Where()函数,按照Name=Tom的条件查询对应的User集合。Find()会把符合条件的记录查询出来,放入到users变量中。
3.3 更新记录
要更新一条记录,可以通过以下代码:
db.Model(&user).Update("Name", "Jerry")
在上面的示例中,使用Update()函数将指定记录的Name字段更新为Jerry。
3.4 删除记录
使用Delete()函数可以删除一条记录。例如:
db.Delete(&user)
在上面的示例中,使用Delete()函数删除指定的用户记录。
4. 示例
以下是使用Gorm操作数据库的示例。该示例在数据库中创建一个用户表格,并向其插入一些记录。稍后,它会查询该表中的所有用户并打印他们的名称。
package main
import (
"fmt"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
type User struct {
gorm.Model
Name string `gorm:"size:255"`
Email string `gorm:"type:varchar(100);unique_index"`
}
func main() {
db, err := gorm.Open("mysql", "username:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local")
defer db.Close()
if err != nil {
panic(err)
}
db.AutoMigrate(&User{})
user := User{Name: "Tom", Email: "Tom@gmail.com"}
db.Create(&user)
users := []User{}
db.Find(&users)
fmt.Println("All users:", users)
}
以上就是关于Gorm ORM框架的基本使用方法的攻略,其中包含了连接数据库、定义模型、增删改查等基础操作的说明及示例。注意,示例仅供参考,具体实现方式根据实际需求可有所变动。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:golang常用库之操作数据库的orm框架-gorm基本使用详解 - Python技术站