GORM连接数据库过程 | 青训营

147 阅读2分钟

使用GORM实现数据库的增删改查

Go语言中比较常用的ORM框架是GORM。本文将介绍如何使用GORM来连接MySQL数据库,并实现基本的CRUD(Create/Read/Update/Delete)操作。

GORM基本使用

首先需要导入GORM相关的包:

import (
   "github.com/jinzhu/gorm"
   _ "github.com/jinzhu/gorm/dialects/mysql"
)

其中github.com/jinzhu/gorm是GORM的核心包,github.com/jinzhu/gorm/dialects/mysql是MySQL的数据库驱动。

然后需要建立数据库连接:

func main() {
  db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local")
  if err != nil {
    panic("failed to connect database")
  }
  defer db.Close() 
}

上面代码建立了一个到MySQL数据库的连接,记得要替换相应的用户名、密码、数据库名。

模型定义

接下来需要根据数据表定义模型结构体:

type User struct {
    gorm.Model
    Name string
    Age  int
}

gorm.Model包含了一些常用字段,如ID,CreatedAt,UpdatedAt等。然后根据业务需要添加其他字段。

CRUD操作

有了模型和数据库连接,就可以进行CURD操作了。

创建数据

user := User{Name: "Tom", Age: 18}
db.Create(&user)

读取数据

var user User
db.First(&user) // 获取第一条记录
db.Find(&user) // 获取所有记录

可以通过Where等方法添加查询条件:

db.Where("name = ?", "Tom").First(&user) 

更新数据

db.Model(&user).Update("Age", 30) 

删除数据

db.Delete(&user)

GORM还提供了许多其他方法,如统计记录数Count、添加唯一约束标签UniqueIndex等,可参考GORM的官方文档。

总结

通过上面的示例可以看出,GORM让数据库操作变得简单直观,可以大大提高开发效率。掌握GORM的基本用法后,可以应用在实际项目中访问数据库。当然ORM框架也有其缺点,比如导致性能下降,不够灵活等,所以在复杂场景下也需要直接使用SQL。但对于基础的CRUD操作,GORM还是能大大减少代码量,从而提高开发效率。