Gorm連接MySQL:
import (
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
type User struct {
Id int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}
func GormTest() {
dsn := username + ":" + password + "@tcp(" + addr + ")/" + datebase + "?charset=utf8&parseTime=true&loc=Local"
var err error
DB, err := gorm.Open("mysql", dsn)
if err != nil {
panic("MySQL conn failed:" + err.Error())
}
//DB.SingularTable(true)
}
資料庫有復數表結構:
資料庫有復數表結構users,代碼中定義user或users結構體,均能操作:
DB.Create(&User{Name: "Li", Age: 5}) //成功
DB.Create(&Users{Name: "Li", Age: 5}) //成功
資料庫有單數表結構:
資料庫有單數表結構user,代碼中定義user或users結構體,均不能操作:
DB.Create(&User{Name: "Li", Age: 5}) //Table 'test.users' doesn't exist
DB.Create(&Users{Name: "Li", Age: 5}) //Table 'test.users' doesn't exist
解決資料庫單數表結構問題:
獲取資料庫連接時,增加一條配置:
DB.SingularTable(true)
此時,代碼結構體單復數和資料庫表名單復數必須對應,單對單,復對復:
DB.Create(&User{Name: "Li", Age: 5}) //成功
DB.Create(&Users{Name: "Li", Age: 5}) //Table 'test.users' doesn't exist
通過代碼創建資料庫表結構:
不加SingularTable配置,通過代碼創建表,不管結構體是單數復數,生成的表都為復數:
DB.AutoMigrate(&User{}) //生成users
DB.AutoMigrate(&Students{}) //生成students
加SingularTable配置,通過代碼創建表,結構體單數生成單數表,結構體復數生成復數表:
DB.AutoMigrate(&User{}) //生成user
DB.AutoMigrate(&Students{}) //生成students
公眾號:李田路口
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/53039.html
標籤:Go
上一篇:go語言 二叉樹
