一、連接數據庫
使用Gorm進行數據庫查詢,必須先連接數據庫。
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local" // 連接 MySQL 數據庫
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(err)
}
}
其中dsn是連接數據庫的信息字符串。
二、定義數據庫模型/結構體
使用Gorm進行高效的MySQL數據庫查詢,我們需要定義表格關聯的模型/結構體。定義模型/結構體時,可以指定表格名、列名、數據類型等詳細信息。
type User struct {
ID uint `gorm:"primary_key"`
Name string `gorm:"type:varchar(100)"`
Age int
Birthday time.Time
Email string `gorm:"type:varchar(100);unique_index"`
Password string
}
如果不指定,則使用默認值,例如表格名是結構體名的複數形式。但是,Gorm提供了靈活的選項,以便開發者自由地選擇模型/結構體的映射規則。
三、Row查詢
在Gorm中,可以使用db.First()方法查詢單個行。就像這樣:
//查詢id=1的用戶信息
var user User
db.First(&user, 1) // SELECT * FROM users WHERE id = 1;
//查詢第一個匹配到的用戶信息
var user User
db.Where(&User{Name: "jinzhu"}).First(&user)
//SELECT * FROM users WHERE name = 'jinzhu' limit 1;
四、Find查詢
在Gorm中,可以使用db.Find()方法查詢多個行。就像這樣:
// 查詢所有的用戶
var users []User
db.Find(&users) // SELECT * FROM users;
// 條件查詢
db.Where("age = ?", 20).Find(&users) // SELECT * FROM users WHERE age = 20;
五、創建記錄
在Gorm中,可以使用db.Create()方法創建新的記錄,就像這樣:
// 創建新用戶
db.Create(&User{Name: "jinzhu", Age: 18, Birthday: time.Now()})
// 批量插入
db.Create([]User{{Name: "jinzhu", Age: 18}, {Name: "jinzhu 2", Age: 20}})
六、更新記錄
在Gorm中,可以使用db.Save()方法來更新記錄。除此之外,還可以使用db.Updates()和db.UpdateColumn()方法來更新記錄。
// 更新所有列
db.Save(&user)
// 更新選定列
db.Model(&user).Update("name", "hello")
// 更新多列
db.Model(&user).Updates(User{Name: "hello", Age: 18})
// 更新指定列
db.Model(&user).UpdateColumn("name", "hello")
// 基於條件更新
db.Table("users").Where("id = ?", 1).Update("name", "hello")
七、刪除記錄
在Gorm中,可以使用db.Delete()方法來刪除記錄。
// 刪除單個記錄
db.Delete(&User{}, 1)
// 刪除所有符合條件的記錄
db.Where("age = ?", 18).Delete(&User{})
// 硬刪除記錄(不使用軟刪除)
db.Unscoped().Where("age = ?", 18).Delete(&User{})
以上便是如何使用Gorm進行高效的MySQL數據庫查詢所需的全部內容。
原創文章,作者:UKCXQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/334229.html