gorm框架

1、grom框架:
(1)它是go语言的ORM框架:对象关系映射---通过操作结构体来操作数据库,不需要使用SQL
(2)grom操作的都是表、表数据----不能操作数据库
gorm默认将id字段作为主键


2.go通过grom操作MySQL
(1)链接mysql:
conn,err := gorm.Open(“mysql”,”root:root@tcp(192.168.30.130)/test”)
(2)借助gorm创建数据库表:
conn.SingularTable(true)
e := conn.AutoMigrate(new (Student)).Error


1.gorm连接池
gorm框架创建好的mysql数据库链接conn,就是一个连接池的句柄
创建全局的变量,来接受句柄:
var GlobalConn *gorm.DB
GlobalConn = conn

对比redis不需要使用Get()方法去取一条连接


4.go函数的几个特性:
(1)go中的函数如果想要包外可见,函数名首字母必须大写,main函数和init函数除外除外
(2)导包的时候如果在包前加一个下划线 -  会让init函数在main函数之前被自动加载

5.gorm框架crud数据
(1)增:result := Globalconn.Create(&stu).Error
(2)查:
First(&user)  获取表中的第一条数据
Last(&user)  获取表中的最后一条数据
Find(&user)  获取表中的全部数据
Select(“name,age”).First(&user)  指定查询第一条数据的具体字段
Select(“name,age”).where(“name=? and age=?”,”zhangsan”,22).Find(&user)  条件查询
(1)改:
GlobalConn.Model(new(User)).Where(“name=?”,”lisi).Updates(map[string] interface{}{“name”:”zhaoliu”,”age”:12}).Error   改多个字段

GlobalConn.Model(new(User)).Where(“name=?”,”lisi).Update(“name”:”zhaoliu”).Error   改单个字段
(2)删:
GlobalConn.Where(“name=?”,”zhaoliu”).Delete(new(Student)).Error   逻辑删除

GlobalConn.Unscope.Where(“name=?”,”zhaoliu”).Delete(new(Student)).Error  物理删除


6.mysql的8小时时区问题
Mysql默认使用的时间:美国东八区时间----北京时间---差8小时

在链接数据库时:
?charset=utf8&parseTime=True&loc=Local

mysql数据库默认有三种时间类型
(1)date
(2)datetime
(3)timestamp   --时间戳
在gorm中只支持timestamp ,但是可以用type关键字指定时间类型:`gorm:”type:timestamp”`

7.mysql64机位最大支持8T存储

8.go采用oss对象存储图片,将图片地址存在mysql,并缓存在redis中


gorm框架

上一篇:Netty随记之ChannelInboundHandlerAdapter、SimpleChannelInboundHandler


下一篇:Netty随记之ChannelHandlerContext与Channel的writeAndFlush的区别