Skip to content

0726DAO的含义

ziyouzy edited this page Jul 26, 2020 · 1 revision

DAO(Data Access Object)是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

在当前项目中(原始范例源代码),于server.model.userDao.go出现:

type UserDao struct {
    pool  *redis.Pool

}

其包裹了一个操作redis的ORM框架,从而设计出对应的增删改查方法,操作数据库:

func (this *UserDao) getUserById(conn redis.Conn, id int) (user *User, err error) {

//通过给定id 去 redis查询这个用户
res, err := redis.String(conn.Do("HGet", "users", id))
if err != nil {
	//错误!
	if err == redis.ErrNil { //表示在 users 哈希中,没有找到对应id
		err = ERROR_USER_NOTEXISTS
	}
	return 
}
user = &User{}
//这里我们需要把res 反序列化成User实例
err = json.Unmarshal([]byte(res), user)
if err != nil {
	fmt.Println("json.Unmarshal err=", err)
	return 
}
return 
}
Clone this wiki locally