首页 > 数据库 >Go语言,查询MySQL数据库

Go语言,查询MySQL数据库

时间:2024-12-23 16:58:25浏览次数:3  
标签:log err 数据库 sql db agent MySQL Go

在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 是数据库名称

标签:log,err,数据库,sql,db,agent,MySQL,Go
From: https://www.cnblogs.com/hailexuexi/p/18624509

相关文章

  • Mysql面试题一
    MySQL数据库可重复读隔离级别是怎么实现的,MVCC并发版本控制原理MySQL可重复读是通过MVCC实现的MVCC(MultiVersionConcurrencyControl的简称),代表多版本并发控制。与MVCC相对的,是基于锁的并发控制,Lock-BasedConcurrencyControl)。MVCC最大的优势:读不加锁,读写不冲突。......
  • Mysql面试题二
    对MySQL的锁了解吗当数据库有并发事务的时候,可能会产生数据的不一致,这时候需要一些机制来保证访问的次序,锁机制就是这样的一个机制。隔离级别与锁的关系在ReadUncommitted级别下,读取数据不需要加共享锁,这样就不会跟被修改的数据上的排他锁冲突在ReadCommitted级别下,读......
  • 数据库系统------连接操作
    什么是连接连接就是把一个或多个来自不同表的元组通过相同的属性字段合并成一个大的元组如上图,把属性ID相同的两个元组(来自不同表)合并成一个大的元组连接属性是否有索引(快速定位),是否有序(是否要全表扫描),还有内存访问和磁盘访问的速度都会影响连接操作的成本theta连接......
  • 【超详细实操内容】django的身份验证系统之限制用户访问的三种方式
    目录1、使用request.user.is_authenticated属性2、装饰器login_required3、LoginRequiredMixin类通常情况下,网站都会对用户限制访问,例如,未登录的用户不可访问用户中心页面。Django框架中使用request.user.isauthenticated属性、装饰器loginrequired和LoginRequiredMixin类......
  • go_router库中的push和go导航路由栈的疑惑。
    这里使用go_router库在浏览器地址栏的地址进行解惑,如果你在安卓、window等客户端软件的话,应该不会有这个疑惑,因为没有地址栏(类似浏览器的地址栏),你也看不到地址栏的变化,而且也只会有一个路由栈。对于浏览器有2个路由栈,一个是浏览器内部的history栈,一个是flutter的路由栈。以下的......
  • cargo 工具的使用详解 ---从cargo开始规范代码
    cago命令参数cargo--listInstalledCommands:addAdddependenciestoaCargo.tomlmanifestfilebalias:buildbenchExecuteallbenchmarksofalocalpackagebuildCompilea......
  • 青少年编程与数学 02-004 Go语言Web编程 17课题、静态文件
    青少年编程与数学02-004Go语言Web编程17课题、静态文件一、静态文件静态文件的常见类型包括:静态文件的特点:在Web服务器上托管静态文件:结论:二、静态文件处理使用http.FileServer使用http.StripPrefix组合使用注意事项使用第三方库三、上传和下载文件上传HTML表单(up......
  • 【金仓产品知多少】一文带您了解金仓数据库迁移工具KDTS
    产品简介KDTS是一款操作简单、高效稳定的数据库迁移工具,基于智能翻译技术和并行任务调度架构实现数据库对象的智能转换和数据的高效迁移,“一键操作”将各种国内外的数据库对象和数据迁移到KingbaseES数据库,帮助用户轻松完成数据库迁移的工作。产品优势灵活的迁移策略支持......
  • 【金仓产品知多少】一文带您了解金仓数据库开发工具KStudio
    产品简介KStudio是一款功能强大的数据库开发和管理工具,可为数据库开发人员、DBA提供数据库开发、调试、维护等各项功能,完美支持金仓数据库。KStudio在界面及功能设计上,以服务数据库管理全过程为目标,遵循极简主义,力求提供用户极致的使用体验。产品优势多平台支持支持多种C......
  • Django在模型表中添加手动校验的方式
    下面的示例主要运用于代码层面的去重处理,不在数据库层面增加唯一键#导入依赖fromdjango.dbimportmodelsfromdjango.utils.translationimportgettext_lazyas_fromrest_framework.exceptionsimportAPIExceptionfromdjango.contrib.authimportget_user_model......