返回
gorm数据库模型curd

echo使用gorm操作curd.

Gorm 一个神奇的,对开发人员友好的 Golang ORM 库

参考文档:https://learnku.com/docs/gorm/v2/create/9732

一、安装配置数据库

go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
dsn := "root:root@tcp(127.0.0.1:3306)/mmlang?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

二、表模型

type ForumModel struct {
	Id          uint    `gorm:"primaryKey" json:"id"`
	Title       string  `json:"title"`
	Userid      uint    `json:"userid"`
	Gid         uint    `json:"gid"`
	Catid       uint    `json:"catid"`
	Love_num    uint    `json:"love_num"`
	Fav_num     uint    `json:"fav_num"`
	Forward_num uint    `json:"forward_num"`
	Keywords    string  `json:"keywords"`
	Description string  `json:"description"`
	Status      uint    `json:"status"`
	Comment_num uint    `json:"comment_num"`
	Imgurl      string  `json:"imgurl"`
	Grade       uint    `json:"grade"`
	Isrecommend uint    `json:"isrecommend"`
	View_num    uint    `json:"view_num"`
	Isnew       uint    `json:"isnew"`
	Tags        string  `json:"tags"`
	Videourl    string  `json:"videourl"`
	Money       float64 `json:"money"`
	Gold        uint    `json:"gold"`
	Createtime  string  `json:"createtime"`
	Updatetime  string  `json:"updatetime"`
	Imgsdata    string  `json:"imgsdata"`
}

三、插入数据

postData := forumModel.ForumModel{
		Title:       c.FormValue("title"),
		Description: c.FormValue("description"),
		Createtime:  now.Format("2006-01-02 15:04:05"),
	}
db.Create(&postData)
//自增id
id = postData.Id	


四、更新数据

postData:=map[string]interface{}{"Title": "hello"}
db.Model(forumModel.ForumModel{}).Where("id=?", id).Updates(postData)

五、常用查询

//查询单行
db.First(&user)
//查询全部
db.Find(&users)
//查询单列
var ages []int64
db.Model(&users).Pluck("age", &ages)
//查询条件
db.Where("id=1").Order("id DESC").Limit(10).Offset(5).Select("id","title").Find(&users)