Go 语言中的关系映射器与 Web 服务
1. Go 关系映射器
在处理关系数据库时,建立数据之间的关系并进行数据的检索是常见的需求。例如,当我们想要获取一篇文章及其相关的评论时,可以通过修改GetPost函数来实现。
func GetPost(id int) (post Post, err error) { post = Post{} post.Comments = []Comment{} err = Db.QueryRow("select id, content, author from posts where id = $1", id).Scan(&post.Id, &post.Content, &post.Author) rows, err := Db.Query("select id, content, author from comments where post_id = $1", id) if err != nil { return } for rows.Next() { comment := Comment{Post: &post} err = rows.Scan(&comment.Id, &comment.Content, &comment.Author) if err != nil { return } post.Comments = append(post.C