首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Gorm
丁牛牛
创建于2023-08-24
订阅专栏
Gorm
暂无订阅
共16篇文章
创建于2023-08-24
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
总结
本节以客户customer和订单order为模型,并且以dao设计模式来实现他们的curd操作。 项目结构 准备数据库和表以及数据 在上面的代码中: customers表有5个字段: orders表有
事务
禁用默认事务 为了确保数据一致性,GORM 会在事务里执行写入操作(创建、更新、删除)。如果没有这方面的要求,您可以在初始化时禁用它,这将获得大约 30%+ 性能提升。 事务 要在事务中执行一系列操作
会话
会话 GORM 提供了 Session 方法,这是一个 New Session Method,它允许创建带配置的新建会话模式: DryRun 生成 SQL 但不执行。 它可以用于准备或测试生成的 SQ
实体关联
自动创建、更新 在创建、更新记录时,GORM 会通过 Upsert 自动保存关联及其引用记录。 如果您想要更新关联的数据,您应该使用 FullSaveAssociations 模式: 跳过自动创建、更
Many To Many关系
Many To Many Many to Many 会在两个 model 中添加一张连接表。 例如,您的应用包含了 user 和 language,且一个 user 可以说多种 language,多个
Has Mang关系
Has Many has many 与另一个模型建立了一对多的连接。 不同于 has one,拥有者可以有零或多个关联模型。 例如,您的应用包含 user 和 credit card 模型,且每个 u
Has One关系
Has One has one 与另一个模型建立一对一的关联,但它和一对一关系有些许不同。 这种关联表明一个模型的每个实例都包含或拥有另一个模型的一个实例。 例如,您的应用包含 user 和 cred
Belongs To关系
Belongs To belongs to 会与另一个模型建立了一对一的连接。 这种模型的每一个实例都“属于”另一个模型的一个实例。 例如,您的应用包含 user 和 company,并且每个 use
SQL构建器
原生SQL 原生查询 SQL 和 Scan Exec 原生 SQL 命名参数 GORM 支持 sql.NamedArg、map[string]interface{}{} 或 struct 形式的命名参
Gorm删除
删除一条记录 删除一条记录时,删除对象需要指定主键,否则会触发 批量 Delete,例如: 根据主键删除 GORM 允许通过主键(可以是复合主键)和内联条件来删除对象,它可以使用数字 Delete H
Gorm更新
保存所有字段 Save 会保存所有的字段,即使字段是零值 更新单个列 当使用 Update 更新单个列时,你需要指定条件,否则会返回 ErrMissingWhereClause 错误,查看 Block
Gorm高级查询
智能选择字段 GORM 允许通过 Select方法选择特定的字段,如果您在应用程序中经常使用此功能,你也可以定义一个较小的结构体,以实现调用 API 时自动选择特定的字段,例如: QueryField
Gorm创建记录
使用指定字段创建记录 创建记录并更新给出的字段 创建一个记录且一同忽略传递给略去的字段值 批量插入 要有效地插入大量记录,请将一个 slice 传递给 Create 方法。GORM 将生成单独一条SQ
Gorm连接到数据库
MySQL 想要正确的处理 time.Time ,您需要带上 parseTime 参数, (更多参数) 要支持完整的 UTF-8 编码,您需要将 charset=utf8 更改为 charset=ut
Gorm声明模型
模型定义 模型是标准的 struct,由 Go 的基本数据类型、实现了 Scanner 和 Valuer 接口的自定义类型及其指针或别名组成 约定 GORM 倾向于约定,而不是配置。默认情况下,GOR
Gorm快速入门
# 安装 ``` go get -u gorm.io/gorm go get -u gorm.io/driver/sqlite ``` # 快速入门 ```golang package main