GORM
The fantastic ORM library for Golang, aims to be developer friendly.
Overview
- Full-Featured ORM (almost)
 - Chainable API
 - Auto Migrations
 - Relations (Has One, Has Many, Belongs To, Many To Many, Polymorphism)
 - Callbacks (Before/After Create/Save/Update/Delete/Find)
 - Preloading (eager loading)
 - Transactions
 - Embed Anonymous Struct
 - Soft Deletes
 - Customizable Logger
 - Iteration Support via Rows
 - Every feature comes with tests
 - Developer Friendly
 
Install
go get -u github.com/jinzhu/gorm
Basic Usage
type Product struct {
  gorm.Model
  Code string
  Price uint
}
var db *gorm.DB
func init() {
  var err error
  db, err = gorm.Open("sqlite", "test.db")
}
func main() {
  db.Create(&Product{Code: "L1212", Price: 1000})
  var product Product
  db.First(&product, 1) // find product with id 1
  db.First(&product, "code = ?", "L1212") // find product with code l1212
  db.Model(&product).Update("Price", 2000) // update product's price to 2000
  db.Delete(&product) // delete product
}
Author
jinzhu
Contributors
https://github.com/jinzhu/gorm/graphs/contributors
License
Released under the MIT License.