辽宁省住房和城乡建设网站,wordpress手机版,服务器搭建网站数据库,天涯网站怎么做外链gorm的那些坑
1. db.SingularTable(true)
在Gorm中#xff0c;表名是结构体名的复数形式#xff0c;列名是字段名的蛇形小写。即#xff0c;如果有一个user表#xff0c;那么如果你定义的结构体名为#xff1a;User#xff0c;gorm会默认表名为users而不是user。
db.S…gorm的那些坑
1. db.SingularTable(true)
在Gorm中表名是结构体名的复数形式列名是字段名的蛇形小写。即如果有一个user表那么如果你定义的结构体名为Usergorm会默认表名为users而不是user。
db.SingularTable(true) 让grom转义struct名字的时候不用加上s
2. Rows.Next() 需要关闭
每次返回的rows 都是新的实例,占用一个数据库连接. rows.next()直到false 就会关闭,否则就会出现资源没有被回收,但数据库设置的超时回收也会去回收 但是会降低服务Tps。
user : new(User)
rows, err : engine.Where(id ?, 1).Rows(user)
if err ! nil {
}
defer rows.Close()
for rows.Next() {err rows.Scan(user)
} 3. Scan error on column index 1, name “created_at”: unsupported Scan, storing driver.Value type []uint8
parseTime是查询结果是否自动解析为时间。loc是MySQL的时区设置
parseTimeTruelocLocal4. NewRecord和Create
db.NewRecord(user) // 主键为空返回true db.Create(user)
NewRecord 检查主键是否存在 Create 即执行 insert 操作