Go语言,查询MySQL数据库

在Go语言中,查询MySQL数据库的一个常用库是database/sql标准库

首先,确保你已经安装了MySQL驱动:

go get -u github.com/go-sql-driver/mysql

示例代码 main.go

package main

import (
    "database/sql"
    "fmt"
    "log"

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

func main() {
    // DSN (Data Source Name) 格式为:[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN]
    dsn := "agent:agent@tcp(localhost:3306)/callcenter_db?parseTime=true&charset=utf8"

    // 打开数据库连接
    db, err := sql.Open("mysql", dsn)
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    // 测试数据库连接是否成功
    err = db.Ping()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("Connected to MySQL database!")

    // 执行查询
    rows, err := db.Query("SELECT en_name, first_name FROM user")
    if err != nil {
        log.Fatal(err)
    }
    defer rows.Close()

    // 遍历查询结果
    for rows.Next() {
        var id sql.NullInt64
        var name string
        if err := rows.Scan(&id, &name); err != nil {
            log.Fatal(err)
        }

        // 如果ID是NULL,则赋值为0
        if id.Valid == false { //Vailid 为false ,说明表中的值为NULL
            id.Int64 = 0
        }

        fmt.Printf("ID: %d, Name: %s\n", id, name)
    }

    // 检查遍历过程中是否有错误发生
    if err = rows.Err(); err != nil {
        log.Fatal(err)
    }
}

连接字符串

dsn := "agent:agent@tcp(localhost:3306)/callcenter_db?parseTime=true&charset=utf8"

用户名 agent  密码 agent

注意 用户名 和 密码 之间 ,有个  :  符号

localhost 是IP 地址    

3306 是mysql 端口号

callcenter_db 是数据库名称

posted @ 2024-12-23 16:57  海乐学习  阅读(91)  评论(0)    收藏  举报