栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Gorm之gorm.Model详解

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Gorm之gorm.Model详解

文章目录
  • Gorm之Model模型
    • 1.模型定义
    • 2.gorm.Model模型定义
    • 3.嵌套gorm.Model结构体
    • 4.嵌套普通结构体
    • 5.嵌入普通结构体并添加前缀
    • 6.自定义模型

Gorm之Model模型

注:本文是基于Windos系统上 gorm.io/gorm@v1.23.4、gorm.io/driver/mysql@v1.3.3进行讲解

1.模型定义

模型:定义的这个模型与表是一一对应,我们在查找表时是用这个模型来代替表的,然后来操作数据库中的对应的数据表;
模型一般都是结构体、Go的基本数据类型,或者指针、sql.Scanner、driver.Valuer、接口;(结构体最常用)

2.gorm.Model模型定义

下面这个模型是系统自带的一个模型, 包含的字段有 ID,CreatedAt, UpdatedAt, DeletedAt。
Time是time包里的一个结构体

// Model a basic GoLang struct which includes the following fields: ID, CreatedAt, UpdatedAt, DeletedAt
// It may be embedded into your model or you may build your own model without it
//    type User struct {
//      gorm.Model
//    }
type Model struct {
	ID        uint `gorm:"primarykey"`
	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt DeletedAt `gorm:"index"`
}
3.嵌套gorm.Model结构体

把系统自带的“内置结构体”给嵌套到自定义的结构体里面;(go原因是支持嵌套的)

package main

import (
	"fmt"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)
type user struct {
	gorm.Model
	Name string
}
func main() {
	dsn := "root:414524@tcp(127.0.0.1:3306)/gotest?charset=utf8mb4&parseTime=True&loc=Local"
	conn, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		fmt.Println(err)
	}
	conn.AutoMigrate(&user{})
}

4.嵌套普通结构体

5.嵌入普通结构体并添加前缀

6.自定义模型
type User struct {
  ID   int
  Name string
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965493.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号