当前位置: 首页 > news >正文

go语言操作数据库

1.10 GO连接MySQL

  1. 因为Go语言没有提供任何官方数据库驱动,所以需要安装第三方函数库。
  2. 由于在github上安装,所以需要安装git软件,安装过程一直点击下一步即可。安装完成后需要配置环境变量
1.10.1 安装git

git软件

在这里插入图片描述

安装完毕后,配置git的环境变量,这样可以使用get的指令

在这里插入图片描述

1.10.2 安装数据库驱动

设置GOPATH的环境变量,这样驱动才会下载到项目根目录中。

在这里插入图片描述


在cmd命令窗口中输入如下命令安装驱动

go get github.com/go-sql-driver/mysql这一命令会从代码中获取驱动的具体代码,并将这些代码放置到包库中,当需要用到驱动的时候,编译器会把驱动代码与用户编写的代码一同编译。

安装完毕后,会在GOPATH下看到下载的驱动

在这里插入图片描述

报错解决

https://blog.csdn.net/admin_jalen/article/details/123025833?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169519102416800225569075%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169519102416800225569075&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-123025833-null-null.142^v94^control&utm_term=%20OpenSSL%20SSL_connect%3A%20SSL_ERROR_SYSCALL%20in%20connection%20to%20github.com%3A443&spm=1018.2226.3001.4187
1.10.3 连接数据库

1、在src目录下创建demo.go文件,导入数据库驱动

import ("database/sql"_ "github.com/go-sql-driver/mysql"
)注意:程序在操作数据库的时候只需要用到database/sql,而不需要直接使用数据库驱动,所以程序在导入数据库驱动的时候将这个包的名字设置成下划线。

2、通过sql.open()连接数据库

sql.open(驱动名,数据源dsn)(*DB,err)数据源语法:"用户名:密码@[连接方式](主机名:端口号)/数据库名"注意:open()在执行时不会真正的与数据库进行连接,只是设置连接数据库需要的参数
ping()方法才是连接数据库

3、执行SQL语句

​ 创建测试表

mysql> create table stu(-> id int primary key,-> name varchar(10)-> );
Query OK, 0 rows affected (0.02 sec)

操作数据

package mainimport ("database/sql"_ "github.com/go-sql-driver/mysql""fmt"
)func main(){//"用户名:密码@[连接方式](主机名:端口号)/数据库名"db,_:=sql.Open("mysql","root:root@(127.0.0.1:3306)/itcast") // 设置连接数据库的参数defer db.Close()	//关闭数据库err:=db.Ping()		//连接数据库if err!=nil{fmt.Println("数据库连接失败")return}//操作一:执行数据操作语句/*sql:="insert into stu values (2,'berry')"result,_:=db.Exec(sql)		//执行SQL语句n,_:=result.RowsAffected();	//获取受影响的记录数fmt.Println("受影响的记录数是",n)*///操作二:执行预处理/*stu:=[2][2] string{{"3","ketty"},{"4","rose"}}stmt,_:=db.Prepare("insert into stu values (?,?)")		//获取预处理语句对象for _,s:=range stu{stmt.Exec(s[0],s[1])			//调用预处理语句}*///操作三:单行查询/*var id,name stringrows:=db.QueryRow("select * from stu where id=4")   //获取一行数据rows.Scan(&id,&name)		//将rows中的数据存到id,name中fmt.Println(id,"--",name)*///操作四:多行查询rows,_:=db.Query("select * from stu")		//获取所有数据var id,name stringfor rows.Next(){		//循环显示所有的数据rows.Scan(&id,&name)fmt.Println(id,"--",name)}
}
http://www.lryc.cn/news/171403.html

相关文章:

  • zabbix实现钉钉报警
  • 基于微信小程序的语言课学习系统设计与实现(源码+lw+部署文档+讲解等)
  • R 语言画图中英文字体解决方案
  • Golang反射相关知识总结
  • go语言初学(备忘)
  • 免费获取独立ChatGPT账户!!
  • 4.docker容器编排(docker compose 与 docker swarm)
  • Linux中配置sudo用户访问权限
  • ASfP: 增强AOSP平台开发的利器——Android Studio for Platform
  • 【Html】用CSS定义咖啡 - 咖啡配料展示
  • Learn Prompt-Prompt 高级技巧:AutoGPT
  • IntelliJ IDEA - Maven 在控制台Maven编译正常,但是在IDEA中不正常,表现不一致
  • list 用法与模拟
  • 【操作系统笔记】进程和线程
  • 一短文读懂编译型与解释型编程语言
  • 修炼离线:(三)sqoop插入hbase 报错权限问题
  • 【JavaEE】多线程(四)
  • 第一章:最新版零基础学习 PYTHON 教程(第七节 - Python 中的语句、缩进和注释)
  • C++ 【2】
  • Java学习笔记40——Lambda表达式
  • 【考研数学】线性代数第五章 —— 特征值和特征向量(3,矩阵对角化理论)
  • 【计算机网络】IP数据报首部格式、最大传输单元MTU、最大分段大小MSS
  • shell脚本之文件读写
  • SAP 刷新Fiori Apps缓存的方法(解决修改CDS后Fiori无法重载新配置)
  • 如何在 Excel 中计算日期之间的天数
  • Java高级-注解
  • wabp.m 代码注释(便于算法快速理解)
  • 数据库数据恢复-SQL SERVER数据库文件损坏的故障表现数据恢复方案
  • flink中cpu消耗的大户-序列化和反序列化
  • 使用 K 均值聚类进行颜色分割