我是 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ù)我所知):
使用標準的sql庫,自己做所有事情。在這種情況下,您將需要使用該
Rows.Scan
函數(shù)自己填充結構。
無論如何,您的StreamST
結構包含一個映射,它是一個集合,所以我假設您要連接兩個表。在 GORM 中,您可以指定關系,庫會考慮到這一點。雖然我不確定這是否也僅適用于切片或映射,因為 GORM 不知道將結構的哪個字段用作映射的索引。
使用標準庫時,返回的行與 SQL 查詢的結果完全相同,因此左表的字段將重復,因此您需要編寫自己的邏輯來將此字段列表轉換為正確的結構。
最后,您有許多自定義類型,例如av.CodecData
. 如果這些對應于單個字段但采用自定義格式,您可以通過讓這些結構實現(xiàn)sql.Scanner和driver.Valuer接口來實現(xiàn)自定義編碼/解碼。
- 1 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消