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

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

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 0
    }
    return 1
}

 

调用方法代码:

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 == 0 {
        return 0, "未找到该用户名"
    }
    fmt.Println(user)
    if user.LoginPass != safe.GetMd5String(userPass) {
        return 0, "密码不正确"
    }
    return 1, "登录成功"
}

 

tianqi.

posted @ 2014-09-15 11:15  天云科技  阅读(934)  评论(0编辑  收藏  举报