由於篇幅問題,本文只是快速開始部分,下面是完整地址。
中文文件地址:http://gorm.book.jasperxu.com/
中文文件專案地址:https://github.com/jasperxu/gorm-cn-doc
Golang寫的,開發人員友好的ORM庫。
概述
- 全功能ORM(幾乎)
- 關聯(包含一個,包含多個,屬於,多對多,多種包含)
- Callbacks(建立/儲存/更新/刪除/查詢之前/之後)
- 預載入(急載入)
- 事務
- 複合主鍵
- SQL Builder
- 自動遷移
- 日誌
- 可擴充套件,編寫基於GORM回撥的外掛
- 每個功能都有測試
- 開發人員友好
安裝
go get -u github.com/jinzhu/gorm
升級到V1.0
快速開始
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) // 查詢id為1的product
db.First(&product, "code = ?", "L1212") // 查詢code為l1212的product
// 更新 - 更新product的price為2000
db.Model(&product).Update("Price", 2000)
// 刪除 - 刪除product
db.Delete(&product)
}