这是我参与「第五届青训营 」笔记创作活动的第36天
碎碎念
大项目推进中,好多bug,真让人沮丧,坚持做吧,一个一个消除,边学边搞,加油吧~GORM好多操作学了一遍还是没记住,今天查缺补漏
Day 36 内容安排
GORM学习
- 介绍
- 基础知识点
随记
- ETCD随记心得吧:
- 定义复习:GORM是全能ORM框架。Object-Relationl Mapping,即对象关系映射,这里的Relationl指的是关系型数据库。它的作用是在关系型数据库和对象之间作一个映射,这样可以使我们编程的时候用更简单的编程语言去代替复杂的数据库操作编程。
- GORM模型定义,在数据库中首先定义数据的表格模型,如comment模块初步定义如下(可以把gorm.Model插入自定义的结构中):
type Comment struct { Comment_id int64 json:"comment_id" gorm:"primaryKey" Comment_text string json:"comment_text" gorm:"unique;default:0" gorm.Model }
其中,声明 model 时,tag 是可选的,GORM 支持以下 tag:tag 名大小写不敏感 gorm:"primaryKey" 指定列为主键 gorm:"unique;default:0" 前者为列为唯一,后者为默认值为0 gorm:"not null" 指定列为 NOT NULL (可参考:gorm.cn/zh_CN/docs/… )
- GORM创建 一般通过指针来创建
result := db.Create(&user) // 通过数据的指针来创建也可以挑选创建、规避创建以及关联创建。 - GORM查询提供了
First、Take、Last方法,以便从数据库中检索单个对象。当查询数据库时它添加了LIMIT 1条件,且没有找到记录时,它会返回ErrRecordNotFound错误。其中First、Last方法会根据主键查找到第一个、最后一个记录,且允许通过内联条件指定主键来检索对象。
总结
- bug好多,bug好多,让人崩溃,花费的时间远远超出预算
- 真的考验耐性,坚持,每天都在进步