GORM 是一个强大的 Go 语言 ORM 库,它简化了数据库操作流程,让开发者可以更方便地进行数据库交互。下面将详细介绍如何使用 GORM 实现基本的 CRUD 操作。
环境准备 确保您的开发环境中已安装 Go 语言,并通过以下命令安装 GORM 和 SQLite 驱动(如果使用其他数据库,请替换为相应的驱动):
Bash
go get -u gorm.io/gorm go get -u gorm.io/driver/sqlite 数据库连接 首先,需要配置 GORM 以连接到数据库。这里以 SQLite 为例:
Go
package main
import ( "gorm.io/driver/sqlite" "gorm.io/gorm" )
var db *gorm.DB
func init() { var err error db, err = gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) if err != nil { panic("failed to connect database") }
db.AutoMigrate(&Product{}) // 自动迁移表结构
}
type Product struct {
ID uint gorm:"primaryKey"
Code string
Price uint
}
创建数据
使用 Create 方法可以向数据库中插入新的记录:
Go
func createProduct(code string, price uint) { db.Create(&Product{Code: code, Price: price}) } 查询数据 查询数据可以通过 First 和 Find 方法来实现:
First 用于获取单条记录: Go
func getProduct(id uint) (Product, error) { var product Product if err := db.First(&product, id).Error; err != nil { return Product{}, err } return product, nil } Find 用于获取多条记录: Go
func getAllProducts() ([]Product, error) { var products []Product if err := db.Find(&products).Error; err != nil { return nil, err } return products, nil } 更新数据 更新数据可以通过 Save 或 Updates 方法来完成:
Go
func updateProduct(id uint, newPrice uint) error { var product Product if err := db.First(&product, id).Error; err != nil { return err } product.Price = newPrice return db.Save(&product).Error } 删除数据 删除数据可以使用 Delete 方法:
Go
func deleteProduct(id uint) error { var product Product return db.Delete(&product, id).Error } 以上就是使用 GORM 进行数据库 CRUD 操作的基本指南。