-
直接使用DB操作数据(不使用MVC,MVC需要判断数据类型DB不需要)。
导入数据库参数:
var DB *sql.DB = driver.MysqlDb
自动判断请求类型并自动输出参数值,没有键则返回空:
// 自动判断请求类型并自动输出参数值
func Input(ctx *gin.Context, key string) string {
var _value string
var value string
var hasKey bool
_method := ctx.Request.Method
if _method == "GET" {
value, hasKey = ctx.GetQuery(key)
}else if _method == "POST" {
value, hasKey = ctx.GetPostForm(key)
}else {
value, hasKey = "(only GET/POST)", false
}
if !hasKey { // 参数不存在
_value = ""
}else{
_value = value
}
return _value
}
查询、新增、修改、假删除、真删除:
// 某用户信息
type ThatUserKeys struct { // 结果集,参数名需大写
UserId int
Nickname string
CreatTime string
}
func ThatUser(ctx *gin.Context) {
// 预定义参数
var state int
var msg string
userId := Kit.Input(ctx, "user_id")
// 直接查询数据
user := ThatUserKeys{} // 构建结果集
err := DB.QueryRow("SELECT `user_id`, `nickname`, `create_time` FROM `gl_user` WHERE `state`<>2 AND `user_id`=?", userId).Scan(&user.UserId, &user.Nickname, &user.CreatTime)
if err != nil {
state = 0
msg = "查询无数据"
}else {
state = 1
msg = "查询完成"
// 访问结构体并改变成员变量的值
createTime := user.CreatTime
createTime = Common.DateToDate(createTime)
user.CreatTime = createTime
}
// 返回一些测试数据
testData := gin.H{
"user_id": userId,
}
// 返回特殊格式意义的数据
ctx.JSON(200, gin.H{
"state": state,
"msg": msg,
"test_data": testData,
"content": user,
})
}
// 新增用户信息
func AddUser(ctx *gin.Context) {
// 预定义参数
var state int
var msg string
userClassId := Kit.Input(ctx, "user_class_id")
nickname := Kit.Input(ctx, "nickname")
createTime := Common.GetTimeDate("YmhHis")
data, err := DB.Exec("INSERT INTO `gl_user` (`user_class_id`, `nickname`, `create_time`) VALUES (?, ?, ?)", userClassId, nickname, createTime )
_id, resErr := data.LastInsertId()
if err != nil {
state = 0
msg = "新增失败"
}else {
state = 1
msg = "新增成功"
}
// 返回一些测试数据
testData := gin.H{
"res_err": resErr,
}
// 返回特殊格式意义的数据
ctx.JSON(200, gin.H{
"state": state,
"msg": msg,
"test_data": testData,
"content": gin.H{
"id": _id,
},
})
}
// 修改用户信息
func UpdateUser(ctx *gin.Context) {
// 预定义参数
var state int
var msg string
userId := Kit.Input(ctx, "user_id")
userClassId := Kit.Input(ctx, "user_class_id")
nickname := Kit.Input(ctx, "nickname")
updateTime := Common.GetTimeDate("YmhHis")
data, err := DB.Exec("UPDATE `gl_user` SET `user_class_id`=?, `nickname`=?, `update_time`=? WHERE `state`=1 AND `user_id`=? ", userClassId, nickname, updateTime, userId)
res, resErr := data.RowsAffected()
if err != nil {
state = 0
msg = "更新失败或无原数据"
}else {
state = 1
msg = "更新成功"
}
// 返回一些测试数据
testData := gin.H{
"res_err": resErr,
"user_id": userId,
}
// 返回特殊格式意义的数据
ctx.JSON(200, gin.H{
"state": state,
"msg": msg,
"test_data": testData,
"content": gin.H{
"res": res,
},
})
}
// 删除用户
// 不是真正删除,只是不可见
func DelUser(ctx *gin.Context) {
// 预定义参数
var state int
var msg string
userId := Kit.Input(ctx, "user_id")
updateTime := Common.GetTimeDate("YmhHis")
data, err := DB.Exec("UPDATE `gl_user` SET `state`=2, `update_time`=? WHERE `state`=1 AND `user_id`=? ", updateTime, userId)
res, resErr := data.RowsAffected()
if err != nil {
state = 0
msg = "无原数据或已删除"
}else {
state = 1
msg = "删除成功"
}
// 返回一些测试数据
testData := gin.H{
"res_err": resErr,
"user_id": userId,
}
// 返回特殊格式意义的数据
ctx.JSON(200, gin.H{
"state": state,
"msg": msg,
"test_data": testData,
"content": gin.H{
"res": res,
},
})
}
// 清除用户
// 直接删除
func ClearUser(ctx *gin.Context) {
// 预定义参数
var state int
var msg string
userId := Kit.Input(ctx, "user_id")
data, err := DB.Exec("DELETE FROM `gl_user` WHERE `user_id` = ?", userId)
res, resErr := data.RowsAffected()
if err != nil {
state = 0
msg = "无原数据或已清除"
}else {
state = 1
msg = "清除成功"
}
// 返回一些测试数据
testData := gin.H{
"res_err": resErr,
"user_id": userId,
}
// 返回特殊格式意义的数据
ctx.JSON(200, gin.H{
"state": state,
"msg": msg,
"test_data": testData,
"content": gin.H{
"res": res,
},
})
}
-