一尘不染

如何将数据库行转换为结构

go

假设我有一个结构:

type User struct {
    Name  string
    Id    int
    Score int
}

与数据库表具有相同的架构。将数据库行解析为结构的最简单方法是什么?我在下面添加了一个答案,但是我不确定这是最好的答案。


阅读 228

收藏
2020-07-02

共1个答案

一尘不染

这是一种实现方法-只需在Scan函数中手动分配所有结构值即可。

func getUser(name string) (*User, error) {
    var u User
    // this calls sql.Open, etc.
    db := getConnection()
    // note the below syntax only works for postgres
    err := db.QueryRow("SELECT * FROM users WHERE name = $1", name).Scan(&u.Id, &u.Name, &u.Score)
    if err != nil {
        return &User{}, err
    } else {
        return &u, nil
    }
}
2020-07-02