我有以下汽车模型和汽车切片:type Car struct { ID int `json:"id"` Name string `json:"title"`}var cars []Car在 Postgres 数据库上,我创建了一个cars表来保存汽车记录。create table cars (id serial, name varchar);并保存了一些汽车记录:insert into cars (name) values ('Toyota');insert into cars (name) values ('Lexus');使用增量整数 ID 1 和 2 成功创建记录。在我的 Go 服务器中,我进行以下查询以获取汽车记录:db.Query("SELECT * from cars").Rows(&cars)for _, car := range cars { fmt.Println(car)}虽然有响应,但每条记录的 id 都为 0。我试图找出原因,但无法找到。有人知道吗?
1 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
database/sql包不提供直接将数据扫描到结构中,您应该遍历从数据库查询返回的行,然后将数据扫描到结构中,如下所示:
var cars []cars
for rows.Next() {
var car cars
err = rows.Scan(&c.ID, &c.Name)
if err != nil {
log.Fatalf("Scan: %v", err)
}
cars = append(cars, car)
}
fmt.Println(cars)
或者您可以使用 sql 包名称sqlx的扩展名,这将使您可以直接将结果扫描到结构的切片中,如下所示:
cars := []cars{}
db.Select(&cars, "SELECT * from cars")
- 1 回答
- 0 关注
- 110 浏览
添加回答
举报
0/150
提交
取消