直接入正题!
1. 首先新建一个类(初始化数据库)
(1)导入gorm相关包
"gorm.io/driver/mysql"
"gorm.io/gorm"
(2)声明两个变量,下步的方法要用(注意DB大写,任意包下go文件都可访问到)
var DB *gorm.DB
var err error
(3)写个方法(用于初始化数据库连接)
func init() {
dsn := "root:123456@tcp(127.0.0.1:3306)/sky?charset=utf8&parseTime=True&loc=Local"
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
fmt.Println(err)
}
}
2. 创建数据库表对应实体类
(1)声明结构体并映射字段和属性 (映射举例:下面结构体的BookType属性)
type Book struct {
Id int
Name string
Author string
BookType string `gorm:"column:type"`
Nums int
Status int
}
(2)写个方法,指定表名
func (Book) TableName() string {
return "book"
}
3.开始使用gorm操作
(1)查(举例:查书)
var bookList []models.Book
models.DB.Where("id>30").Find(&bookList)
c.JSON(http.StatusOK, gin.H{
"result": bookList,
})
(2)改(举例:改书名)(解释:先查到id为4的书然后进行修改)
book := models.Book{Id: 40}
models.DB.Find(&book)
book.Name = "testUpdateData"
models.DB.Save(&book)
(3)删 (举例:删书)(解释:同(2))
book := models.Book{Id: 35}
models.DB.Delete(&book)
(4)增 (举例:增书)(解释:先实例化结构体,然后传参,字段映射在此仍起作用)
book := models.Book{
Name: "testGorm",
Author: "Me",
BookType: "TestData",
Nums: 999,
Status: 0,
}
models.DB.Create(&book)
关于gorm的快速入门到此结束
注意:
- 关于gorm相关包中的表操作方法还有Where等,在此不再说明,容易上手,可去文档查阅
- 以上举例,我的文件目录如下:
(1)book.go
package models
/**
*
* @author yth
* @language go
* @since 2022/11/12 14:42
*/
type Book struct {
Id int
Name string
Author string
BookType string `gorm:"column:type"`
Nums int
Status int
}
func (Book) TableName() string {
return "book"
}
(2)core.go
package models
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
/**
*
* @author yth
* @language go
* @since 2022/11/12 14:33
*/
var DB *gorm.DB
var err error
func init() {
dsn := "root:123456@tcp(127.0.0.1:3306)/sky?charset=utf8&parseTime=True&loc=Local"
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
fmt.Println(err)
}
}