GORM
The fantastic ORM library for Golang, aims to be developer friendly.
Overview
- Full-Featured ORM (almost)
 - Associations (Has One, Has Many, Belongs To, Many To Many, Polymorphism)
 - Callbacks (Before/After Create/Save/Update/Delete/Find)
 - Preloading (eager loading)
 - Transactions
 - Composite Primary Key
 - SQL Builder
 - Auto Migrations
 - Logger
 - Extendable, write Plugins based on GORM callbacks
 - Every feature comes with tests
 - Developer Friendly
 
Install
go get -u github.com/jinzhu/gorm
Upgrading To V1.0
Quick Start
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("failed to connect database")
  }
  // Create
  db.Create(&Product{Code: "L1212", Price: 1000})
  // Read
  var product Product
  db.First(&product, 1) // find product with id 1
  db.First(&product, "code = ?", "L1212") // find product with code l1212
  // Update - update product's price to 2000
  db.Model(&product).Update("Price", 2000)
  // Delete - delete product
  db.Delete(&product)
}
Author
jinzhu
Contributors
https://github.com/jinzhu/gorm/graphs/contributors
License
Released under the MIT License.