GORM是一個優秀的Golang ORM庫,它在數據庫操作中非常方便。這里我將介紹如何使用GORM2連接MySQL數據庫。
1. 安裝GORM2
go get -u github.com/jinzhu/gorm go get -u github.com/jinzhu/gorm/dialects/mysql
2. 連接MySQL數據庫
在main函數中創建一個GORM數據庫連接。連接到MySQL數據庫的代碼如下:
import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" // 加載mysql驅動 ) // 連接MySQL數據庫 func connectMySQL() (*gorm.DB, error) { db, err := gorm.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test_db?charset=utf8&parseTime=True&loc=Local") if err != nil { return nil, err } return db, nil }
這里使用root用戶,密碼為123456,連接的MySQL數據庫是test_db。
charset=utf8表示字符集是UTF8,parseTime=True表示自動解析MySQL中的日期類型,loc=Local表示設置時區為本地(不設置時包中默認使用UTC時區)。
3. 創建一個數據模型
這里創建一個user模型。
//user模型 type User struct { ID uint `gorm:"primary_key"` Name string `gorm:"type:varchar(32);not null;unique_index:name_age"` Age int `gorm:"type:int;not null;unique_index:name_age"` }
該模型包含ID、Name和Age屬性。其中ID用于標識每個用戶,Name和Age屬性用于表示用戶姓名和年齡。注意,這里使用gorm標簽指定數據庫中列的類型,名稱,是否必填,索引等信息。
4. 創建并遷移數據庫表
創建數據庫表用戶,可以使用GORM的AutoMigrate函數:
// 創建數據庫表 db.AutoMigrate(&User{})
在啟動應用程序時創建一個GORM數據庫連接,并將用戶提交到數據庫。
完整示例代碼:
package main import ( "fmt" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" ) //user模型 type User struct { ID uint `gorm:"primary_key"` Name string `gorm:"type:varchar(32);not null;unique_index:name_age"` Age int `gorm:"type:int;not null;unique_index:name_age"` } func main() { db, err := connectMySQL() if err != nil { fmt.Println("連接MySQL數據庫錯誤:", err) return } defer db.Close() // 創建數據庫表 db.AutoMigrate(&User{}) // 新增用戶 var user = User{Name: "小明", Age: 18} if err := db.Create(&user).Error; err != nil { fmt.Println("新增用戶錯誤:", err) return } fmt.Println("成功添加一條用戶數據") } // 連接MySQL數據庫 func connectMySQL() (*gorm.DB, error) { db, err := gorm.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/test_db?charset=utf8&parseTime=True&loc=Local") if err != nil { return nil, err } return db, nil }
通過以上步驟,我們已經成功地連接了數據庫,并可以入庫操作了。