Open main menu
首页
专栏
课程
分类
归档
Chat
Sci-Hub
谷歌学术
Libgen
GitHub镜像
登录/注册
搜索
搜索
关闭
Previous
Previous
Next
Next
## 1.什么是orm ORM全称是:Object Relational Mapping(对象关系映射),其主要作用是在编程中,把面向对象的概念跟数据库中表的概念对应起来。举例来说就是,我定义一个对象,那就对应着一张表,这个对象的实例,就对应着表中的一条记录 简单来说,就是将关系数据库和对象做一个映射,这样,在我们具体去操作数据库的时候不用再去写原生的SQL语句,而是像平时操作对象一样操作数据库就ok了。 ORM使用描述对象和数据库的之间的元数据,让对象自动持久化到关系数据库中。 ## 2.gorm框架 gorm的特点: - 全功能 ORM (无限接近) - 关联(包含一个,包含多个,属于,多对多,多态) - 钩子 (在创建/保存/更新/删除/查找之前或之后) - 预加载 - 事务 - 复合主键 - SQL 生成器 - 数据库自动迁移 - 自定义日志 - 可扩展性, 可基于 GORM 回调编写插件 - 所有功能都被测试覆盖 - 开发者友好 ## 3.gorm安装 ```shell go get -u github.com/jinzhu/gorm ``` ## 4.模型定义 模型(Models)通常只是正常的 golang structs、基本的 go 类型或它们的指针。 同时也支持[`sql.Scanner`](https://golang.org/pkg/database/sql/#Scanner)及[`driver.Valuer`](https://golang.org/pkg/database/sql/driver/#Valuer) 接口(interfaces)。 模型(Model)示例: ```go type User struct { gorm.Model Name string Age sql.NullInt64 Birthday *time.Time Email string `gorm:"type:varchar(100);unique_index"` Role string `gorm:"size:255"` // 设置字段大小为255 MemberNumber *string `gorm:"unique;not null"` // 设置会员号(member number)唯一并且不为空 Num int `gorm:"AUTO_INCREMENT"` // 设置 num 为自增类型 Address string `gorm:"index:addr"` // 给address字段创建名为addr的索引 IgnoreMe int `gorm:"-"` // 忽略本字段 } ```
登录查看更多内容
【Gin实战系列】模型定义
作者
sockstack
许可协议
CC BY 4.0
发布于
2023-09-02
修改于
2023-09-02
尚未登录
登录 / 注册
专栏目录
【Gin实战系列】快速入门
【Gin实战系列】项目结构
【Gin实战系列】项目配置
【Gin实战系列】控制器于路由
【Gin实战系列】请求参数处理
【Gin实战系列】校验错误信息
【Gin实战系列】服务编写
【Gin实战系列】模型定义
【Gin实战系列】数据库操作
【Gin实战系列】请求响应处理
【Gin实战系列】统一结构响应处理
【Gin实战系列】中间件使用
【Gin实战系列】日志使用
【Gin实战系列】cookie处理
【Gin实战系列】session处理
【Gin实战系列】模板渲染
【Gin实战系列】实例:密码加密
【Gin实战系列】实例:登录注册
【Gin实战系列】jwt身份认证
【Gin实战系列】使用 swagger 文档
【Gin实战系列】实例:文件上传