在结构化数据的数据库访问场景中,通常需要将数据库行数据转换为相应的结构体。考虑以下 User 结构:
type User struct { Name string Id int Score int }
假设数据库表具有相同的架构,我们如何有效地将数据库行直接解析为 User 结构?
Go 数据库/sql 包提供了有用的示例,如下所示测试:
func TestQuery(t *testing.T) { type row struct { age int name string } rows, err := db.Query("SELECT|people|age,name|") got := []row{} for rows.Next() { var r row err = rows.Scan(&r.age, &r.name) got = append(got, r) } } func TestQueryRow(t *testing.T) { var row struct { age int name string } err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name) }
将这些原则应用于您的具体情况,您可以将行转换为 User 结构,如下所示:
var row struct { age int name string } err = db.QueryRow("SELECT|people|age,name|age=?", 3).Scan(&row.age, &row.name)
以上是如何在 Go 中高效地将数据库行转换为结构体?的详细内容。更多信息请关注PHP中文网其他相关文章!