2017-09-16 3 views
0

行のすべてのフィールドを取得し、それらをhtmlにレンダリングする必要があります。私はそれを行う方法を知っているし、ここに3つのフィールドを持つ行のコードです:SQL QueryRowの結果から構造体フィールドを動的に生成

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 
} 

しかし、私のテーブル内の1つの行は、約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の狂った柔軟性のようなクレイジーなハングアップ対自己maded CMSの – rocco

関連する問題