MST
星途 面试题库

面试题:Go语言中如何使用标准库连接MySQL数据库并查询数据

请用Go语言代码示例展示如何使用标准库 `database/sql` 连接MySQL数据库,并执行一条简单的查询语句,查询一个名为 `users` 表中的所有记录,并处理可能出现的错误。假设MySQL数据库的连接信息为:用户名 `root`,密码 `password`,数据库地址 `127.0.0.1:3306`,数据库名 `test`。
48.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 构建数据源名称
    dsn := "root:password@tcp(127.0.0.1:3306)/test"
    db, err := sql.Open("mysql", dsn)
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    // 测试数据库连接
    err = db.Ping()
    if err != nil {
        panic(err.Error())
    }
    fmt.Println("Connected to the database!")

    // 执行查询
    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    // 处理查询结果
    for rows.Next() {
        var id int
        var name string
        var age int
        err = rows.Scan(&id, &name, &age)
        if err != nil {
            panic(err.Error())
        }
        fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
    }

    // 检查迭代过程中的错误
    err = rows.Err()
    if err != nil {
        panic(err.Error())
    }
}

请注意,上述代码中需要导入 github.com/go-sql-driver/mysql 驱动,在实际运行前请确保已经安装了该驱动(可以通过 go get -u github.com/go-sql-driver/mysql 安装)。并且代码中的表结构假设 users 表有 id(整型)、name(字符串)、age(整型)字段,实际应用中请根据真实表结构调整 Scan 部分。