1、创建账号
db := libs.GetMysqlDb("document")
db.Begin()
defer func() {
if err != nil {
db.Rollback()
} else {
db.Commit()
}
}()
注释:
(1)获取数据库的orm对象
(2)db.Begin()数据库开始
(3)db.Rollback()数据库回滚
(4)db.Commit()数据库提交
尝试从数据库读取,不存在的话就创建一个。
默认必须传入一个参数作为条件字段,同时也支持多个参数多个条件字段
o := orm.NewOrm()
user := User{Name: "slene"}
// 三个返回参数依次为:是否新创建的,对象 Id 值,错误
if created, id, err := o.ReadOrCreate(&user, "Name"); err == nil {
if created {
fmt.Println("New Insert an object. Id:", id)
} else {
fmt.Println("Get an object. Id:", id)
}
}
批量插入
if _, err := db.InsertMulti(100, quotaTbls); err != nil {}
2、生成随机数组成盐
// GetRandomString 生成随机字符串
func (random *Random) GetRandomString(length int64) string {
str := "****" //字符串
bytes := []byte(str)
result := []byte{}
r := rand.New(rand.NewSource(time.Now().UnixNano()))
for i := int64(0); i < length; i++ {
result = append(result, bytes[r.Intn(int(len(bytes)))])
}
return string(result)
}
https://www.cnblogs.com/logo-fox/p/7396710.html
3、两种加密方式
//随机盐
// 加盐验证密码
func (u *UserModel) Password(password, salt string) string {
return fmt.Sprintf("%+x", sha256.Sum256([]byte(password+salt)))
}
//固定盐
pwdMd5 := fmt.Sprintf("%x", md5.Sum([]byte(pwd+configs.GetGlobalConfig().PwdKey)))