假设我有一个 struct :
type User struct {
Name string
Id int
Score int
}
以及具有相同模式的数据库表.将数据库行解析为 struct 最简单的方法是什么?我在下面添加了一个答案,但我不确定它是否是最好的.
假设我有一个 struct :
type User struct {
Name string
Id int
Score int
}
以及具有相同模式的数据库表.将数据库行解析为 struct 最简单的方法是什么?我在下面添加了一个答案,但我不确定它是否是最好的.
这里有一种方法——只需在Scan
函数中手动分配所有 struct 值.
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
}
}