package main import ( "fmt" "gorm.io/driver/sqlite" "gorm.io/gorm" ) //type User struct { // ID uint `gorm:"primaryKey"` // Name string `gorm:"size:100"` // Email string `gorm:"size:100;unique"` // Age int // Active bool `gorm:"default:true"` //} func main() { db, _ := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) db.AutoMigrate(&User{}) // 插入测试数据 db.Create(&User{Name: "Alice", Email: "alice@example.com", Age: 30}) db.Create(&User{Name: "Bob", Email: "bob@example.com", Age: 25}) // 1. 原生查询 var users []User db.Raw("SELECT * FROM users WHERE age > ?", 20).Scan(&users) fmt.Printf("Raw query result: %d users\n", len(users)) // 2. 原生更新 db.Exec("UPDATE users SET age = age + 1 WHERE name = ?", "Alice") fmt.Println("Raw update executed") // 3. 原生统计 var count int64 db.Raw("SELECT COUNT(*) FROM users").Scan(&count) fmt.Printf("Total users: %d\n", count) // 4. 查询单行 var result struct { Name string Age int } db.Raw("SELECT name, age FROM users WHERE id = ?", 1).Scan(&result) fmt.Printf("User: %s (age=%d)\n", result.Name, result.Age) }