发布时间: 2021-09-08 23:00:00
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 ....
否则会映射不到.
Back