首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Golang中通过数据库行创建地图

在Golang中通过数据库行创建地图
EN

Stack Overflow用户
提问于 2013-07-25 01:32:50
回答 4查看 34.8K关注 0票数 27

基本上,在执行查询之后,我希望获得结果行并生成一个[]map[string]interface{},但是我不知道如何使用该API来实现这一点,因为Rows.Scan()函数需要特定数量的参数来匹配请求的列数(可能还有类型)才能正确地获取数据。

同样,我想对此调用进行泛化,并接受任何查询并将其转换为[]map[string]interface{},其中映射包含映射到该行的值的列名。

这可能是非常低效的,我计划稍后更改结构,以便interface{}成为单个数据点的结构。

如何仅使用database/sql包,或者如果需要,使用database/sql/driver包?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-25 12:04:47

看看使用sqlx,它比标准的数据库/sql库更容易做到这一点:

places := []Place{}
err := db.Select(&places, "SELECT * FROM place ORDER BY telcode ASC")
if err != nil {
    fmt.Printf(err)
    return
}

显然,您可以将[]Place{}替换为[]map[string]interface{},但如果您知道数据库的结构,那么在可能的情况下最好使用结构。您不需要像在interface{}上那样进行任何类型断言。

票数 13
EN

Stack Overflow用户

发布于 2013-07-25 02:50:20

我还没有用过它,但我相信(或多或少)做你所要求的事情的“常见”方法是使用gorp

票数 4
EN

Stack Overflow用户

发布于 2018-02-02 22:30:56

如果你真的想要一个map,这在某些情况下是需要的,可以看看dbr,但是你需要使用fork (因为pr在原始的repo中被拒绝了)。不管怎样,fork看起来更新了:

https://github.com/mailru/dbr

有关如何使用它的信息,请参阅:

https://github.com/gocraft/dbr/issues/83

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17840963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档