gorm : gorm.io
特别超级非常简单
安装
2044 go get -u gorm.io/gorm
2045 go get -u gorm.io/driver/mysql
一段代码:
package main
import (
"gorm.io/gorm"
"gorm.io/driver/mysql"
"fmt"
"time"
)
type Book struct {
gorm.Model // 加不加都行.加了之后,就有软删除的功能,不建议加.
ID uint
Title string
Author string
Name string
CreatedAt time.Time
}
func main(){
dsn := "root:666666@tcp(127.0.0.1:3306)/study_rails?charset=utf8mb4&parseTime=true&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
fmt.Println(err)
panic("failed")
}
db.AutoMigrate(&Book{})
book := Book{ Title: "hi 中文Go", Author: "dashi", Name: "gogogo!"}
result := db.Create(&book)
fmt.Println(result, book.ID)
var find_book Book
db.Last(&find_book)
fmt.Println(find_book)
var books []Book
db.Where("author like ?", "das%").Find(&books)
for i,e := range books {
fmt.Println("=== i", i, "e: ", e)
}
db.Limit(3).Where("author like ?", "%as%").Find(&books)
for i,e := range books {
fmt.Println("=== i", i, "e: ", e)
}
find_book.Author = "大师, 略略"
db.Save(&find_book)
var delete_book Book
// 这里会删掉第一个记录.
db.First(&delete_book)
fmt.Println("== before delete..", delete_book)
db.Delete(&delete_book)
}
注意:
声明struts ( model )的时候, model 中的属性都是大写开头,例如 Title, Author ,
id列用ID
对应的数据库中, table名称是 小写 books, my_books, table的column命名也是一样, author_name ....
否则会映射不到.