Gorm是一款性能極好的ORM,且友善,因此可以明顯的提高開發效率。
go get -u gorm.io/gorm
package main
import (
_ "github.com/go-sql-driver/mysql"
"gorm.io/gorm"
)
func main() {
db, err := gorm.Open("mysql", "root:root@(127.0.0.1:3306)/db1?" +
"charset=utf8mb4&parseTime=True&loc=Local")
if err!= nil{
panic(err)
}
defer db.Close()
db.DB().SetMaxIdleConns(10)
db.DB().SetMaxOpenConns(100)
}
SetMaxIdleConns:閒置時最大連接數。
SetMaxOpenConns:最大連接數。
定義好結構後,用db.AutoMigrate(),就會自動創建。
GormUser := GormUser{
Phone: "0987654321",
Name: "xxx",
Password: md5Password("333333"), //使用者密碼
}
db.Save(&GormUser) //儲存到資料庫
var GormUser = new(GormUser)
db.Where("phone = ?", "0987654321").Delete(&GormUser)
var GormUser = new(GormUser)
db.Where("phone = ?", "0987654321").Find(&GormUser)
fmt.Println(GormUser)
var GormUser = new(GormUser)
err:=db.Model(&GormUser).Where("phone = ?", "0987654321").
Update("phone", "0987666666").Error
if err !=nil {
//......
}
tx := db.Begin()
GormUser := GormUser{
Phone: "0987654321",
Name: "xxx",
Password: md5Password("333333"), //使用者密碼
}
if err := tx.Create(&GormUser).Error; err != nil {
//復原
tx.Rollback()
fmt.Println(err)
}
db.First(&GormUser, "phone = ?", "0987654321")
//提交
tx.Commit()
db.LogMode(true)
db.SetLogger(log.New(os.Stdout, "\r\n", 0))