使用GORM库在Go语言中连接数据库并实现增删改查操作 | 青训营

77 阅读2分钟

简介: GORM是面向Go语言的一种ORM框架,支持多种数据库的接入,例如MySQL,PostgreSQL,SQLite,SQLServer等等。它可以帮助开发者更轻松地操作数据库,因为它弱化了开发者对于SQL语言的掌握程度,它将数据库表映射为Go语言的结构体,从而实现了面向对象的数据库操作。此外它的中文文档齐全,对开发者也非常友好。

特性如下:

  • 全功能 ORM
  • 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
  • Create,Save,Update,Delete,Find 中钩子方法
  • 支持 Preload、Joins 的预加载
  • 事务,嵌套事务,Save Point,Rollback To Saved Point
  • Context,预编译模式,DryRun 模式
  • 批量插入,FindInBatches,Find/Create with Map,使用 SQL 表达式、Context Valuer 进行 CRUD
  • SQL 构建器,Upsert,数据库锁,Optimizer/Index/Comment Hint,命名参数,子查询
  • 复合主键,索引,约束
  • Auto Migration
  • 自定义 Logger
  • 灵活的可扩展插件 API:Database Resolver(多数据库,读写分离)、Prometheus…

本文将介绍如何使用GORM库连接数据库,并实现常见的增删改查操作。

步骤1:安装GORM库 首先,我们需要使用Go的包管理工具安装GORM库。在终端中执行以下命令:

go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite

步骤2:连接数据库 在Go程序中,首先需要建立与数据库的连接。以下代码是一个连接SQLite数据库的示例代码:

package main

import (
    "gorm.io/driver/sqlite"
    "gorm.io/gorm"
)

func main() {
    // github.com/mattn/go-sqlite3 
    db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{})
    
    // 此处开始执行增删改查操作
}

步骤3:定义模型 在GORM中,数据库表与Go语言结构体相对应。你需要定义一个结构体,它将作为模型与数据库表进行映射。以下是一个示例模型的代码:

type User struct {
    gorm.Model
    Name  string
    Email string
}

步骤4:实现增删改查操作 以下是在Go中使用GORM实现增删改查操作的示例代码:

// 插入数据
    db.Create(&user)
    
// 查询数据
    var users User
    db.Find(&users)
    fmt.Println(users)

// 更新数据
    var user User
    db.First(&user)
    user.Name = newName
    db.Save(&user)

// 删除数据
    var user User
    db.Delete(&user)

总结: 通过GORM库,我们可以轻松地连接数据库并实现增删改查等常见操作,同时享受面向对象的开发体验。使用GORM,开发者可以更专注于业务逻辑的实现,而不必过多关注数据库操作的细节。无论是小型项目还是大型应用,GORM都为Go开发者提供了强大的工具来处理数据库操作。这会大大简化数据库操作的开发工作,提高开发的效率,建议开发者使用gorm来管理数据库。