デベロッパーフレンドリーを目指した、素晴らしいGolang用ORMライブラリ。
概要
- (ほぼ)フル機能を備えたORM
 
- アソシエーション(Has One, Has Many, Belongs To, Many To Many, Polymorphism)
 
- フック(Before/After Create/Save/Update/Delete/Find)
 
- プリローディング(eager loading)
 
- トランザクション
 
- 複合主キー
 
- SQLビルダー
 
- オートマイグレーション
 
- ロガー
 
- GORMのコールバックベースのプラグイン記述で拡張可能
 
- 各機能ごとに付属するテストコード
 
- デベロッパーフレンドリー
 
インストール
go get -u github.com/jinzhu/gorm
   | 
 
クイックスタート
package main
  import (   "github.com/jinzhu/gorm"   _ "github.com/jinzhu/gorm/dialects/sqlite" )
  type Product struct {   gorm.Model   Code string   Price uint }
  func main() {   db, err := gorm.Open("sqlite3", "test.db")   if err != nil {     panic("データベースへの接続に失敗しました")   }   defer db.Close()
       db.AutoMigrate(&Product{})
       db.Create(&Product{Code: "L1212", Price: 1000})
       var product Product   db.First(&product, 1)    db.First(&product, "code = ?", "L1212") 
       db.Model(&product).Update("Price", 2000)
       db.Delete(&product) }
   |