首页 >后端开发 >Golang >如何使用 SQLX 正确地将嵌套结构扫描到 Go 结构中?

如何使用 SQLX 正确地将嵌套结构扫描到 Go 结构中?

Barbara Streisand
Barbara Streisand原创
2024-11-25 12:13:12821浏览

How to Correctly Scan Nested Structs into Go Structs Using SQLX?

SQLX 嵌套结构扫描

尝试使用 SQLX 将查询结果扫描到嵌套结构时,了解正确的方法至关重要。

在提供的示例中,由于 Address 结构未正确嵌入到客户结构。为了解决这个问题,需要嵌入。

嵌入结构

嵌入结构允许访问嵌入字段,而不需要使用嵌入类型的名称作为前缀。这简化了字段访问,并确保在扫描查询结果时正确填充嵌入结构中的字段。

type Customer struct {
    Id        int
    Name      string
    Address   // Embedded struct without tags
}

type Address struct {
    Street string  `db:"street"`
    City   string  `db:"city"`
}

更新的查询

通过嵌入 Address 结构,SQLX 将自动从根据数据库标签查询结果到适当的字段。

customer := models.Customer{}
err := db.Get(&customer, `select * from users where>

JSON编组

请注意,嵌入 Address 结构会展平 JSON 输出,删除嵌套的地址对象。要维护嵌套结构,请考虑使用类型转换将字段映射回原始结构。

以上是如何使用 SQLX 正确地将嵌套结构扫描到 Go 结构中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn