はじめにGoでデータベースを扱う場合、Gorm, Gorp, sqlx といった ORM がよく使われます。多くの場合は構造体のフィールドとデータベースのカラム名のマッピングをするタグ付きの構造体を実装します。例えば Gorm を用いて users テーブルにアクセスする場合、以下のような構造体が一例として考えられます。 model_user.gotype User struct { UserID string `gorm:"column:user_id;primary_key"` UserName string `gorm:"column:user_name"` } func (u *User) TableName() string { return "users" } Gorm や Xorm といった ORM を用いる場合、スキーマから構造体を生成できず、構造体の生成が面倒という問題が