Go言語からORMマッパーをつかってMysqlを操作する

f:id:loosefingers:20160817152653p:plain

Go言語からMysqlを操作するサンプルを書いてみる。

ORMマッパー用の使えるライブラリがないか探してみたところ、gormというライブラリを試してみた基本機能はそろっている印象。実際使ってみても非常に使いやすい。 jinzhu.me

以下作業ログ

Package Install

まず必要なパッケージをinstall

go get github.com/jinzhu/gorm
go get github.com/jinzhu/gorm/dialects/mysql

Migration

Table定義を構造体として設定する。

type Product struct {
        gorm.Model
        Code  string
        Price uint
}

カラムはアノテーションを使用して、振る舞いを柔軟に指定できる。

Id int64 `json:"id" gorm:"column:id;primary_key"`

以下の部分でmigrationを実行してくれる。便利。 productsテーブルが作成される。

// Migrate
db.AutoMigrate(&Product{})

レコードを取得するには以下のように実行する。これもシンプル。

db.First(&product, 1)

最終的なコードサンプル全体はこちら、GORMのサンプルをすこしだけ変更してみる。 gist.github.com