golang
(159)golang gorm 2 中使用 lock for update 锁
查了一下 golang gorm 2 确实支持 lock for update。文档:
https://gorm.io/zh_CN/docs/advanced_query.html#Locking-FOR-UPDATE
```
Golang Gorm Error 1292: Incorrect datetime value: '0000-00-00' for column
## 报错内容
在用 Golang Gorm 更新 MySQL 一条数据时,报错:
```
Error 1292: Incorrect datetime value: '0000-00-00' for column 'create
Goland Gin 将上传的图片文件转存到七牛 CDN
## 安装七牛 golang sdk
```
go get -u github.com/qiniu/go-sdk/v7
go get github.com/qiniu/go-sdk/v7/storage@v7.9.5
```
golang 生成 UUID
实现 golang 向七牛云 CDN 上传图片文件的功能,需要为图片生成一个唯一的文件名,
所以找了一下 Golang 生成 UUID 的实现。
## 安装依赖
go get github.com/google/uuid
Golang 将日期字符串转换为星期几
由于 Golang Weekday 返回的是日期的英文周几,需要加个 Map 转换为中文。
```
package main
import (
"fmt"
"time"
)
var WeekDayMap = m
GORM 1 升级 GORM 2 的修改点
在写公司内部的一个办公系统时,想趁机把 Gorm 版本升级一下。
大部分靠 go build 的编译错误提示,修改完成。
## 依赖修改
由
github.com/jinzhu/gorm
变更为
golang 升级 1.16.3 之后,编译报错 missing go.sum entry for module providing package
## 问题现象
在开发机上升级到了最新 golang 1.16.3 版本,在为一个基于 golang 1.13 的历史项目添加 excel 依赖包后
go get github.com/360EntSecGroup-Skyl
新装系统在 VIM 保存 Golang 文件时一直卡在 vim-go: initializing gopls
一台新装系统,先安装了 VIM,并且安装了 vim-go 插件。
之后才安装的 Golang,版本 1.16.3。
但是在使用 VIM 编辑 Golang 代码文件时,一保存就显示
> vim-go: initializi
golang gin jwt 管理微信小程序的登录态
## 是否存在伪造用户 token 的可能
不容易实现。
虽然 jwt 是明文的,前面两部分通过 base64 解码即可看到明文。假设,里面存储了用户 id 或者 用户的 open id,但是即便被终端用户解密出结构。但是第三部分里
golang 中使用时间戳作为用户 id 的可行性
有一个简单的使用场景,即用户在一个设备上,会反复添加条目,例如一个 TODO 项。除了自增 ID 之外,我还想加上另外一个唯一标识。由于同一时间,用户只能添加一条记录,所以不会出现并发冲突的问题。
能想到的最简单方案就是使用时间戳。于