Gorm零值更新问题
这里记录一个大坑,gorm更新值为0的字段的时候,不能通过结构体进行更新,即以下操作是无效的DB.Model(&entity.Item{}).Where("id = ?", id).Updates(&entity.Item{Status: 0})需要通过map进行更新value := map[string]interface{}{ "st...
这里记录一个大坑,gorm更新值为0的字段的时候,不能通过结构体进行更新,即以下操作是无效的DB.Model(&entity.Item{}).Where("id = ?", id).Updates(&entity.Item{Status: 0})需要通过map进行更新value := map[string]interface{}{ "st...
我真的是,傻逼,大傻逼,真的。事情是这样的,今天用gorm写了一个查询,用的是原生的SQL语句,结果Scan到一个slice里面,就是这么简单,一切照常写,代码类似这样子:err = DB.Raw("select * from users").Scan(users).Error乍一看代码没问题,嗯,乍一看,然后你猜怎着,panic了,报错如下:reflect: refle...
Zap是uber开源的Go高性能日志库,Gin是一个常用的web框架。好吧我也不知道写什么介绍,直接上代码吧。所用中间件:https://github.com/gin-contrib/zap具体用法可到这里查看↑,此处仅作记录log/Logger.go该文件用于初始化Zap Loggerpackage log import ( "go.uber.org/zap"...
一般来说,密码是不能明文储存在数据库里面的,所以有的系统会将密码进行 md5或 sha1Hash之后存入数据库,这种方案可能会被字典攻击,因此,有了加盐Hash,即将密码和盐组合之后Hash保存到数据库,这种方法基本防止了字典攻击。而在Golang中,Golang提供了一种更为安全的加密方式——crypto/bcrypt,使用这种方式进行加密的可以使得同一密码每次生成的Hash都是不一样的,...