MST

星途 面试题库

面试题:Go中常见ORM框架的基础使用

请描述在Go语言中使用GORM框架连接MySQL数据库,并创建一个简单的数据表结构,同时插入一条测试数据的基本步骤。
27.9万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
  1. 安装GORM和MySQL驱动
    go get -u gorm.io/gorm
    go get -u gorm.io/driver/mysql
    
  2. 连接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")
        }
        // 可以在这里进行一些数据库连接后的操作,如设置连接池等
    }
    
  3. 定义数据表结构
    type User struct {
        ID   uint
        Name string
        Age  int
    }
    
  4. 创建数据表
    err = db.AutoMigrate(&User{})
    if err != nil {
        panic("failed to migrate table")
    }
    
  5. 插入测试数据
    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")
    }
}