数据库初始化
var db *gorm.DB
func init() {
//gorm.Open("数据库类型", "用户名:密码@tcp(IP:port)/数据库名")
//注意: 为了正确的处理 time.Time ,你需要包含 parseTime 作为参数
d, err := gorm.Open("mysql", "root:xxxx@tcp(ip:port)/go_test?charset=utf8&parseTime=True&loc=Local")
if err != nil {
panic(err)
}
db = d
}
//用户结构体
type User struct {
// 将字段 `ID`, `CreatedAt`, `UpdatedAt`, `DeletedAt` 注入到 `User` 模型中
//gorm.Model
Id int64 `db:"id"`
Username string `db:"username"`
Password string `db:"password"`
}
通过Exec *** 作原生sql
db.Exec("update t_user set password=? WHERE id = ?", "6666666",8)
通过RAW *** 作原生sql
var user User
db.Raw("SELECT id,username, password FROM t_user WHERE id = ?", 8).Scan(&user)
fmt.Printf("%+v",user)
2.row&rows
先生成row,然后再从row中取值
var username string
var password string
row := db.Table("t_user").Where("id = ?", 8).Select("username, password").Row()
row.Scan(&username, &password)
fmt.Printf("username:%v \n",username)
fmt.Printf("password:%v \n",password)
Select后面的值要和数据库一直
row.Scan后面的变量名可以不一致
先生成rows,然后再从rows中循环取值
rows, _ := db.Table("t_user").Select("username, password").Rows()
defer rows.Close()
for rows.Next() {
var user User
db.ScanRows(rows, &user)
fmt.Printf("user:%v \n",user)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)