如何从数据库行创建Golang地图?

  • 回答 (3)
  • 关注 (0)
  • 查看 (81)

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

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

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

我如何使用数据库/SQL包,或者如果必要的话使用数据库/SQL/驱动程序包?

袁弋雯袁弋雯提问于
英特奈特见贤思齐回答于
已采纳

看看使用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{}...

回答过的其他问题

Nginx的https问题?

英特奈特见贤思齐
这个是我在用的配置可以参考下 server { listen 443; server_name www.youname.com; ssl on; ssl_certificate /SSH/1_www.youname.com_bundle.crt; ssl_certificat...... 展开详请

Selenium(Python) - 等待下载过程使用Chrome网络驱动程序完成

英特奈特见贤思齐
已采纳
您可以通过chrome://downloads/驱动程序导航获取每次下载的状态。 等待所有下载完成并列出所有路径: def every_downloads_chrome(driver): if not driver.current_url.startswith("chr...... 展开详请

Bootstrap垂直对齐属性不起作用?

英特奈特见贤思齐
垂直中心与高度有关。在你的例子中,所有的兄弟列都是相同的高度,所以你不会看到任何对齐的变化。 无论是.row需要有一个定义的高度,或列中的一些内容导致该行有更多的高度。 <div class="container"> <div class="row" style="he...... 展开详请

腾讯云的域名价格究竟是多少?该怎么计算?

英特奈特见贤思齐
不同的域名后缀价格有所不同,可登录腾讯云官网首页->云产品->域名服务->域名注册,进入域名注册服务页面,点“域名价格”,就可以查看到不同后缀的域名新购、续费、转入的价格。请参见下图:[图片描述]... 展开详请

Java8 ScheduledExecutorService.scheduleAtFixedRate()

如何在pytorch中初始化不同样式的nn.Sequential块的不同层的权重

英特奈特见贤思齐
这是一种方法: import torch import torch.nn as nn net = nn.Sequential() ll1 = nn.Linear(2, 5, bias = False) torch.nn.init.uniform_(ll1.weight, ...... 展开详请

关于作者

所属标签

扫码关注云+社区