Go之Gorm简介及使用案例

package main import (

&#34;fmt&#34;<br/>
_ &#34;github.com/go-sql-driver/mysql&#34;<br/>
&#34;github.com/jinzhu/gorm&#34;<br/>
&#34;os&#34;<br/>
&#34;time&#34;<br/>

) const (

dbUser     string = &#34;test&#34;<br/>
dbPassword string = &#34;ZHOUjian.22&#34;<br/>
dbHost     string = &#34;121.36.43.223&#34;<br/>
dbPort     int    = 3306<br/>
dbName     string = &#34;cmdb&#34;<br/>

) var dsn string = fmt.Sprintf(“%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&loc=Local&parseTime=true”,

dbUser, dbPassword, dbHost, dbPort, dbName)

type User3 struct {

// 会从gorm嵌入一些字段进来<br/>
gorm.Model<br/>
Name     string<br/>
Password string<br/>
Birthday time.Time<br/>
Sex      bool<br/>
Tel      string<br/>
Addr     string<br/>
Desc     string<br/>

} type User4 struct {
Id int gorm: &#34;primary_key; auto_increment&#34;

Name     string<br/>
Password string<br/>
Birthday time.Time<br/>
Sex      bool<br/>
Tel      string<br/>
Addr     string<br/>
Desc     string<br/>

} func (*User4)TableName() string {

return &#34;user&#34;<br/>

}
//type User4 struct {
// Id int gorm:&#34;primary_key&#34;
// Name string gorm:&#34;type:varchar(32);unique;not null; default:&#39;&#39;&#34;
// Password string
// Birthday time.Time gorm:&#34;type:date&#34;
// Sex bool
// Tel string gorm:&#34;column:telephone&#34;
// Addr string
// Desciption string gorm:&#34;type:text&#34;
//} func main() {

db, err := gorm.Open(&#34;mysql&#34;, dsn)<br/>
if err != nil {<br/>
	fmt.Println(err)<br/>
	os.Exit(-1)<br/>
}
// 创建表<br/>
db.AutoMigrate(&amp;User3{})<br/>
db.AutoMigrate(&amp;User4{})<br/>

// fmt.Println(db.CreateTable(&User3{},&User4{}))

//db.Model(&amp;User{}).AddIndex(&#34;idx_name_addr&#34;, &#34;name&#34;, &#34;addr&#34;)
db.Close()<br/>

}