阅读量:0
在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
切片。
运行此程序,你将看到满足条件的用户被打印出来。