首页 > 数据库 >Go开发 之 Go如何读取Mysql数据

Go开发 之 Go如何读取Mysql数据

时间:2022-10-31 18:31:42浏览次数:74  
标签:answer 读取 Mysql sql go github mysql Go codeName


目录

  • ​​1、简介​​
  • ​​2、下载包,并创建包路径​​
  • ​​3、引用包​​
  • ​​4、举例说明​​
  • ​​5、效果图​​

1、简介

Go语言是个很方便的具有动态写法的静态语言,读取mysql是go语言中必不可少的操作,它怎么实现呢?
请听我一一道来

2、下载包,并创建包路径

首先github中下载mysql的包,地址:​​https://github.com/go-sql-driver/mysql​​ 下载好包后,在Go的GOPATH路径的src文件夹中依次建立如github多级路径中的名字。

例如:
mysql这个包在github中是在github.com下的go-sql-driver下的mysql里面
那么我们就在我们机器的GOPATH路径的src文件夹下依次创建github.com,go-sql-driver,mysql
并把下载的go的源码包放入到最后一级目录下面。

我是在windows上开发的这个示例,这里是我截的图:

Go开发 之 Go如何读取Mysql数据_go开发

3、引用包

创建go文件

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

直接引入头文件即可,有细心的同学已经看的“database/sql”这个包了,这个包是go的标准库里面的包。
在go的文档中有记载,可以在这个网址 ​​​https://studygolang.com/pkgdoc​​ 中看

4、举例说明

这里我做了一个小示例,读取指定表的指定字段中的数据。

package main

/**
Author:ShaZhenYu
Date:20180926
*/

import (
"database/sql"
"fmt"

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

const (
mysql_user = "root"
mysql_passwd = "Qnzs123"
mysql_ip = "127.0.0.1"
mysql_port = "3306"
mysql_robot = "robot"
mysql_qyDB = "qy10000000051"
)

func main() {
//此示例传入一个参数,返回两个参数
var qID = "L400000006"
//读取mysql指定表的指定字段内容
tmpAnswer, tmpCodeName := funReadSql(qID)
//读取mysql成功
fmt.Printf("读取mysql成功!!!\ncodeName:%s, answer:%s\n", tmpCodeName, tmpAnswer)
}

func funReadSql(quitionID string) (string, string) {
//打开数据库
db, errOpen := sql.Open("mysql", mysql_user+":"+mysql_passwd+"@tcp("+mysql_ip+":"+mysql_port+")/"+mysql_qyDB+"?charset=utf8")
if errOpen != nil {
//TODO,这里只是打印了一下,并没有做异常处理
fmt.Println("funReadSql Open is error")
}

//读取t_knowledge_tree表中codeName和answer字段
var codeName, answer string
errTables := db.QueryRow("SELECT standerdAsk,answer FROM t_knowledge_tree WHERE codeId=?", quitionID).Scan(&codeName, &answer)
if errTables != nil {
//TODO,这里只是打印了一下,并没有做异常处理
fmt.Println("funReadSql SELECT t_knowledge_tree is error", errTables)
}
fmt.Printf("funReadSql codeName:%s, answer:%s\n", codeName, answer)

//关闭数据库
db.Close()
return answer, codeName
}

5、效果图

Go开发 之 Go如何读取Mysql数据_sql_02


标签:answer,读取,Mysql,sql,go,github,mysql,Go,codeName
From: https://blog.51cto.com/u_15854865/5810885

相关文章

  • Python开发 之 批量读取文件中指定字符
    目录​​1、背景​​​​2、待读取文件​​​​3、读取每一句中的汉字​​1、背景从指定的NLP生成的文件中读取指定的字符。2、待读取文件是以":"作为分隔符的数据,每一行以......
  • Algorithm: Lecture 4. Divide-and-Conquer Homework
    author:Miyasakadate:2022-10-31title:"Algorithm:Lecture4.Divide-and-ConquerHomework"*Inthiswork,alltheindexofarraystartsby1.Question:Bin......
  • 开启iTunes访问文件权限,读取Documents本地txt文件
    一、开启iTunes访问沙盒文件夹权限在Info.plist文件中添加UIFileSharingEnabled这个Key,并设置该值为 YES 即可在填写完 UIFileSharingEnabled并回车后,发现会自动......
  • Go开发 之 单端口转发到多个端口
    文章目录​​1、背景​​​​2、正题​​​​3、源码​​​​4、配置​​​​5、效果​​1、背景运维和我提到这个需求的时候,我先是一愣,第一时间想到的是nginx,然后运维说ngi......
  • Centos7虚拟机,共享主机文件夹挂载,运行go中带c的程序
    md由于不会用java去转c写的加密,就必须用公司原来的加密方法,原来的是c写的,然后跟go结合着用,问题就是在windows上装了c的环境还是不能跑加密的,所以只能先试试用Linux的系统能......
  • MySQL(一)
    SQL语句三大主线DDL:(DataDefinitionLanguages,数据定义语言),主要用来创建,删除,修改库和表的结构.DML:(DataManipulationLanguage,数据操作语言),主要用于添加,删......
  • allure报告定制logo
    1.allure安装目录下找到config文件,修改allure.yml,增加 -custom-logo-plugin 2.将logo图片放到allure-2.14.0\plugins\custom-logo-plugin\static目录下,修改styles.cs......
  • 【 云原生 | kubernetes 】- Argo CD Gitlab身份验证及SSO单点登录
    :zap:前言:了解OAuth协议。OAuth是一种授权协议,它可以用来保证第三方只有当获得授权的时候,才能访问授权者的权限我们之前文章已经大概了解了ArgoCD的作用和一些用法。在......
  • mongo常用查询
    条件查询select*fromtable1whereaa=value1,bb=value2;1.单条件查询语法db.getCollection('文档名').find({字段名:"字段值"})例如db.getCollection('assets_inf......
  • Go语言对比跳表和Map
    最近学习一个GO语言写的开源项目Lotusdb,https://github.com/flower-corp/lotusdb,其中使用跳表作为数据结构来缓存Key-Value,产生了疑惑为什么不直接用Map而要自己写个跳......