在GORM中,你可以使用DB.Raw()
方法來編寫自定義的SQL語句。這允許你直接執行原生SQL查詢并將結果映射到Go變量或結構體。下面是一個使用GORM和自定義SQL語句的示例:
首先,確保你已經安裝了GORM庫:
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite
然后,創建一個簡單的Go程序,使用GORM和自定義SQL語句:
package main
import (
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
Age int
}
func main() {
// 初始化數據庫連接
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
// 遷移 schema
db.AutoMigrate(&User{})
// 插入一些數據
db.Create(&User{Name: "John", Age: 25})
db.Create(&User{Name: "Jane", Age: 30})
// 使用自定義SQL語句查詢
var users []User
db.Raw("SELECT * FROM users WHERE age > ?", 20).Scan(&users)
// 輸出查詢結果
for _, user := range users {
fmt.Printf("User: %v\n", user)
}
}
在這個示例中,我們首先定義了一個User
結構體,然后使用GORM連接到SQLite數據庫并自動遷移表結構。接著,我們插入了一些示例數據。最后,我們使用DB.Raw()
方法編寫自定義SQL語句來查詢年齡大于20的用戶,并將結果映射到users
切片。
運行此程序,你將看到滿足條件的用戶被打印出來。