1、什么是ORM?
从程序员角度理解:
在go代码里用一个结构体struct和一个关系型数据库里面的一个数据表,他们之间可以存在一个映射关系,这就是ORM要做的事情。
把程序中的对象或者实例,或者说go语言一个结构体实例,把他映射成数据库mysql里面存储的一条数据,对应起来。
形象化:
1 | type UserInfo struct{ |
2 | ID uint |
3 | NAME string |
4 | Gender string |
5 | Hobby string |
6 | } |
7 | |
8 | func main(){ |
9 | u1 := UserInfo{1, "大莹", "女", "打游戏"} |
10 | //将u1数据存入数据库 |
11 | //SQL语句:insert into userinfo values(1, "大莹", "女", "打游戏"); |
12 | //ORM语句 |
13 | orm.Create(&u1) |
14 | } |
ORM可以理解为三个映射关系:
数据表<->结构体
数据行<->结构体实例
字段<->结构体字段
ORM优缺点:
优点:提高开发效率
缺点:牺牲执行性能、牺牲灵活性、弱化SQL能力
2、gorm介绍
附GORM指南:https://gorm.io/
可根据指南详细学习