返回

高效链接与数据管理:使用 GORM 在 Go 中连接数据库与实现增删改查

见解分享

踏入 GORM 世界:连接数据库
在 Go 中使用 GORM 与数据库建立连接可谓轻而易举。只需几行代码,您就可以让应用程序与数据库进行交互,尽享数据管理的便捷。

增删改查:数据库操作的基石
GORM 提供了清晰明了的 API,让您轻松实现数据库的基本操作:

创建(Create) :将数据写入数据库,开启持久化存储之旅。

读取(Read) :从数据库中检索数据,让信息触手可及。

更新(Update) :修改数据库中的现有数据,保持信息的时效性。

删除(Delete) :从数据库中移除数据,实现数据的清理与优化。

实践出真知:增删改查的代码示例
理论与实践相辅相成,我们通过代码示例,让 GORM 的增删改查操作更加生动易懂:

package main

import (
	"fmt"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

type Product struct {
	ID    int
	Name  string
	Price float64
}

func main() {
	// 创建数据库连接
	dsn := "user:password@tcp(127.0.0.1:3306)/gorm?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		panic(err)
	}

	// 自动迁移,创建表
	db.AutoMigrate(&Product{})

	// 增
	product := Product{Name: "Apple iPhone 13", Price: 999.99}
	db.Create(&product)

	// 查
	var products []Product
	db.Find(&products)

	// 改
	product.Price = 1099.99
	db.Save(&product)

	// 删
	db.Delete(&product)

	// 打印结果
	fmt.Println(products)
}

点睛之笔:封装操作,打造更优雅的代码
为了让代码更加整洁、易读,我们可以将增删改查的操作封装成函数,让代码结构更加清晰:

package main

import (
	"fmt"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

type Product struct {
	ID    int
	Name  string
	Price float64
}

func main() {
	// 创建数据库连接
	dsn := "user:password@tcp(127.0.0.1:3306)/gorm?charset=utf8mb4&parseTime=True&loc=Local"
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		panic(err)
	}

	// 自动迁移,创建表
	db.AutoMigrate(&Product{})

	// 封装增删改查操作
	createProduct(db, "Apple iPhone 13", 999.99)
	products := readProducts(db)
	updateProduct(db, 1, 1099.99)
	deleteProduct(db, 1)

	// 打印结果
	fmt.Println(products)
}

func createProduct(db *gorm.DB, name string, price float64) {
	product := Product{Name: name, Price: price}
	db.Create(&product)
}

func readProducts(db *gorm.DB) []Product {
	var products []Product
	db.Find(&products)
	return products
}

func updateProduct(db *gorm.DB, id int, price float64) {
	product := Product{ID: id}
	db.Model(&product).Update("Price", price)
}

func deleteProduct(db *gorm.DB, id int) {
	product := Product{ID: id}
	db.Delete(&product)
}

结语
通过 GORM,我们轻松实现了与数据库的连接,并掌握了增删改查的基本操作。无论是作为数据库交互的新手,还是经验丰富的开发者,GORM 都能为我们提供高效、友好的数据管理体验。