GORM入门和CRUD使用笔记 | 青训营

45 阅读2分钟

GORM框架是一个Go语言的ORM(对象关系映射)库,它可以让我们用Go语言的结构体和方法来操作数据库,而不需要直接写SQL语句。GORM框架支持多种数据库,如MySQL、PostgreSQL、SQLite等,而且具有很多优势和特点,例如:

  • 全功能,支持事务、关联、钩子、预加载、迁移等功能。
  • 开发者友好,提供了丰富的文档、示例和社区支持。
  • 性能优秀,使用了缓存、连接池、批量操作等技术来提高效率。
  • 设计灵活,允许我们自定义模型、字段、表名、索引等,也可以使用原生SQL语句来执行复杂的查询。

下面我将介绍一下GORM框架的基本用法,以及如何使用GORM框架连接MySQL数据库,并实现增删改查(CRUD)操作的基本实验流程。

首先,我们需要安装GORM框架和GORM框架的MySQL驱动:

go get gorm.io/gorm  
go get gorm.io/driver/mysql  

然后,我们需要定义一个结构体来表示我们要操作的数据表,例如:

type User struct {  
    ID uint  
    Name string  
    Age int  
    Email string  
}  

接着,我们需要创建一个数据库连接,并指定驱动和连接字符串:

import (  
    "gorm.io/gorm"  
    "gorm.io/driver/mysql"  
)  
  
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{})  
    if err != nil {  
        panic("failed to connect database")  
    }  
}  

使用db.AutoMigrate方法来自动创建或更新数据表:

db.AutoMigrate(&User{})  

随后,使用db.Create方法来插入一条数据:

user := User{Name: "Xiaoming", Age: 20, Email: "xiaoming@example.com"}  
db.Create(&user)  

使用db.Find方法来查询所有数据:

var users []User  
db.Find(&users)  

还可以使用db.Where方法来添加条件查询:

var user User  
db.Where("name = ?", "Alice").First(&user)  

还可以使用db.Model方法来更新一条数据:

db.Model(&user).Update("age", 21)  

最后,使用db.Delete方法来删除一条数据:

db.Delete(&user)  

以上就是我学习Gorm框架的一些笔记,希望对大家有所启发。更多详细的用法和示例,请参考Gorm官方文档:gorm.io/docs/