第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 Mysql 填充 Struct 類型映射

如何從 Mysql 填充 Struct 類型映射

Go
繁華開滿天機 2022-10-10 19:07:31
我是 Golang 的新手。這是我要加載的結構,問題是存在我不知道如何從 Mysql 填充的 map [string] ChannelSTtype StreamST struct {    Name     string    Channels map[string]ChannelST}type ChannelST struct {    Name             string    URL              string    OnDemand         bool    Debug            bool    Status           int    runLock          bool    codecs           []av.CodecData    sdp              []byte    signals          chan int    hlsSegmentBuffer map[int]SegmentOld    hlsSegmentNumber int    clients          map[string]ClientST    ack              time.Time
查看完整描述

1 回答

?
慕斯709654

TA貢獻1840條經(jīng)驗 獲得超5個贊

確切的答案很大程度上取決于您的數(shù)據(jù)庫架構。我將嘗試給出一個通用的答案。你可以走兩種方式(據(jù)我所知):

  1. 使用在這方面做很多事情的庫,比如sqlxgorm。這些庫將查看結構和標簽中導出的字段以自動填充它們。

  2. 使用標準的sql庫,自己做所有事情。在這種情況下,您將需要使用該Rows.Scan函數(shù)自己填充結構。

無論如何,您的StreamST結構包含一個映射,它是一個集合,所以我假設您要連接兩個表。在 GORM 中,您可以指定關系,庫會考慮到這一點。雖然我不確定這是否也僅適用于切片或映射,因為 GORM 不知道將結構的哪個字段用作映射的索引。

使用標準庫時,返回的行與 SQL 查詢的結果完全相同,因此左表的字段將重復,因此您需要編寫自己的邏輯來將此字段列表轉換為正確的結構。

最后,您有許多自定義類型,例如av.CodecData. 如果這些對應于單個字段但采用自定義格式,您可以通過讓這些結構實現(xiàn)sql.Scannerdriver.Valuer接口來實現(xiàn)自定義編碼/解碼。



查看完整回答
反對 回復 2022-10-10
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號