面试题答案
一键面试- 安装GORM和MySQL驱动:
go get -u gorm.io/gorm go get -u gorm.io/driver/mysql
- 连接MySQL数据库:
package main 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" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect database") } // 可以在这里进行一些数据库连接后的操作,如设置连接池等 }
- 定义数据表结构:
type User struct { ID uint Name string Age int }
- 创建数据表:
err = db.AutoMigrate(&User{}) if err != nil { panic("failed to migrate table") }
- 插入测试数据:
user := User{Name: "John", Age: 30} result := db.Create(&user) if result.Error != nil { panic("failed to create user") }
完整代码如下:
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type User struct {
ID uint
Name string
Age int
}
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
err = db.AutoMigrate(&User{})
if err != nil {
panic("failed to migrate table")
}
user := User{Name: "John", Age: 30}
result := db.Create(&user)
if result.Error != nil {
panic("failed to create user")
}
}