orm 通用方法——GetOneModel 条件查询一个对象

时间:2023-03-08 19:59:58

数据连接层的方法封装成通用方法是很有必要,节省不必要的重复写代码。

Golang的orm、xorm框架没有封装这些操作。

这里是一个查询单个对象的方法。

此处抛砖引玉,大家继续完善。

通用方法定义代码:

/**
* 描述:根据条件查询一个对象
* 作者:Tianqi
* 日期:2014-09-04
* param model:*interface{} 对象实例
* param model:cond 查询条件
* return count:结果数
*/
func GetOneModel(model interface{}, cond *orm.Condition) int64 {
qs := orm.NewOrm().QueryTable(model).SetCond(cond)
err := qs.One(model)
if err != nil {
return
}
return
}

调用方法代码:

func UserLogin(userName, userPass string) (int64, string) {
user := &modelsRm.RmUser{}
var cond *orm.Condition
cond = orm.NewCondition().And("LoginName", userName)
count := dal.GetOneModel(user, cond)
if count == {
return , "未找到该用户名"
}
fmt.Println(user)
if user.LoginPass != safe.GetMd5String(userPass) {
return , "密码不正确"
}
return , "登录成功"
}

tianqi.