2017-09-16 186 views
0

我想檢索該行的所有字段並將它們呈現爲html。我知道如何做到這一點,這裏是一排3個字段代碼:從SQL查詢結果動態生成結構字段結果

type View struct { 
    Id   int 
    Name_and_requisits string 
    Reg_Date string 
} 
func getViewById(id int) (*View, error){ 
    var vie View 
    row := db.QueryRow("select id, name_and_requisits, reg_date from book where id = ?;", id) 
    err := row.Scan(&vie.Id, &vie.Name_and_requisites, &vie.Reg_Date) 
    if err != nil { 
     return nil, err 
    } 

    return &vie, nil 
} 

但在我的表中的一行包括20列,我需要所有的人都用自己的名字,但我不希望創建一個經過硬編碼的結構。我有一個想法,想動態生成結構域,從列的名稱,並使用row.Scan它。有任何想法嗎?也許地圖更適合這種情況?

謝謝!

+1

https://kylewbanks.com/blog/query-result-to-map-in-golang –

+0

@StephaneMartin謝謝,你的回答幫助了我! – rocco

回答

4

產生結構域動態

https://golang.org/pkg/reflect/#StructOf

但請:不要做。

+2

「不要這樣做」。哈,別開玩笑。人們總是來自Python並且想要瘋狂的奇怪的靈活性,卻沒有意識到Go是一種靜態類型的語言,並且這是一件好事。 – RayfenWindspear

+0

你的指導是值得的+ 1 –

+0

@RayfenWindspear你是對的,Python是我的背景:)靈活性較低是Go中的一件好事,我同意。這就像Joomla的瘋狂的靈活性與瘋狂掛起與自我CMS CMS – rocco