GORM|青训营笔记

83 阅读1分钟

ORM,全称是:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录。GORM是字节跳动开发的ORM库,根据官网文档(有中文)gorm.io/zh_CN/docs 一步步操作便可轻易上手学习了。

安装

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

连接数据库

安装完数据库驱动后便可以连接数据库,进行建表,增删改查了。

package main

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

type Product struct {
	gorm.Model
	Code  string
	Price uint
}
func main() {
	db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
	if err != nil {
		panic("failed to connect database")
	}

	// 迁移 schema
	db.AutoMigrate(&Product{})
    // Create
	db.Create(&Product{Code: "D42", Price: 100})
    // Read
	var product Product
	db.First(&product, 1)                 // 根据整型主键查找
	db.First(&product, "code = ?", "D42") // 查找 code 字段值为 D42 的记录

	// Update - 将 product 的 price 更新为 200
	db.Model(&product).Update("Price", 200)
	// Update - 更新多个字段
	db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // 仅更新非零值字段
	db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})

	// Delete - 删除 product
	db.Delete(&product, 1)
}

查看表

连接建立好数据库后,在终端通过图中命令查看test.db里面包含的表和选择查看哪个表的内容 image.png