GO连接MySQL

通过GO页面作为客户端访问数据库

1.因为GO语言没有提供任何官方数据库驱动,所以需要安装第三方函数库。

2.由于在github上安装,所以需要安装git软件,安装过程一直点击下一步即可,安装完需要配置环境变量

git自行下载

配置gopath环境变量,配置完git到的包自动下载到那里

安装完git后使用get指令下载第三方函数库

一.安装数据库驱动

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

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

这一命令会从代码中获取驱动的具体代码,并将这些代码放置到包库中,当需要用到驱动的时候,

编译器会把驱动代码与用户编写的代码一同编译。

至此在GOPATH目录下回看到git下来的文件

二.连接数据库

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

import (

"database/sql"

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

)

注意:程序在操作数据库的时候只需要用到databases/sql,而不需要直接使用数据库驱动,所以

程序在导入数据库驱动的时候将这个包的名字设置成下划线。

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

sql.open(驱动名,数据源dsn)(*DB,err)

数据源语法:"用户名:密码@[连接方式](主机名:端口号)/数据库名"

注意:open()在执行时不会真正的与数据库进行连接,只是设置连接数据库需要的参数

ping()方法才是连接数据库

3.创建测试表

//use test1

// mysql> create table stu(

// -> id int primary key,

// -> name varchar(10)

// -> );

三.代码

package main

import (

"database/sql"

"fmt"

_ "github.com/go-sql-driver/mysql" //sql操作时不需要,只是连接的时候需要,所以加下划线忽略

//它时驱动mysql的

)

func main() {

// 数据源语法:"用户名:密码@[连接方式](主机名:端口号)/数据库名"

db, _ := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test1")

//设置连接数据库的参数 1.驱动名固定写法,2 数据源名称@符号后边如果是tcp协议,那么可以省略不写

//返回db和一个错误

defer db.Close() //关闭数据库

//上边只是设置参数,并未真正连接

//真正连接

err := db.Ping() //连接数据库

if err != nil { //判断成功失败

fmt.Println("数据库连接失败")

//如果连接失败 先检查数据库服务是否已经启动 net start mysql启动数据库

return

}

//在数据库中创建表

//use test1

// mysql> create table stu(

// -> id int primary key,

// -> name varchar(10)

// -> );

//1 插入数据

//操作一:执行数据操作语句

// sql := "insert into stu values(2,'beery')"

// result, _ := db.Exec(sql) //返回执行结果 //执行sql语句

// n, _ := result.RowsAffected() //获取受影响的记录数

// fmt.Println("受影响的记录数是", n);//这个分号加上也不错,标准没有

//举一反三 更新删除同理

//操作二:执行预处理

// stu := [3][2]string{{"3", "ketty"}, {"4", "rose"}, {"5", "mike"}} //三行两列

// //准备一下 ?是占位符 返回*Stmt 和 err

// stmt, _ := db.Prepare("insert into stu values(?,?)") //获取预处理语句对象

// for _, s := range stu { //返回下标和值

// stmt.Exec(s[0], s[1]) //调用预处理语句传参数 对应id name

// //运行一下,都进去了

// }

// //增删改用操作一就行

// //操作三:单行查询

// var id, name string

// //获取一行数据

// rows := db.QueryRow(" select * from stu where id= 4 ") //返回当前行的 一条记录 可以写where 条件

// rows.Scan(&id, &name) //将rows中的数据存放到id 和 name 中

// fmt.Println("id:", id, "name:", name)

// //操作四:多行查询

rows, _ := db.Query(" select * from stu") //获取所有数据,返回所有的行

//取数据库中的数据的时候有个指针,取完以后下移,没有记录时,不取了

//刚开始的时候,指向第一条记录前的数据

var id, name string

for rows.Next() { //返回的bool型 循环显示所有的数据

//有数据就获取当前行的数据

rows.Scan(&id, &name)

fmt.Println("id: ", id, "name: ", name)

}

}

(本笔记整理自网络资源,侵删)

golang 执行sql语句_Go语言学习笔记(Golang操作MySQL数据库)相关推荐

  1. C#学习笔记----C#连接MySQL数据库

    C#学习笔记----C#连接MySQL数据库 using System.Linq; using System.Text; using System.Data;// 引用表的命名空间 using Sys ...

  2. go语言学习第八天==》mysql数据库增删改查、用go语言 客户端(client)发起htttp get请求,post请求,postForm请求,Head请求,Do请求

    go语言学习第八天==>mysql数据库增删改查.用go语言写 客户端(client)发起htttp get请求,post请求,postForm请求,Head请求,Do请求 引包 import的 ...

  3. go get 拉取指定版本_go语言学习笔记-基础知识-3

    相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...

  4. 安装成功配置环境变量_go语言学习笔记-Windows10开发环境安装和环境变量配置

    相关文档 go语言学习笔记-目录 1.安装 1.1.访问 https://golang.google.cn/dl/ 或 https://golang.org/dl/ 下载官方安装包 1.2.选择Win ...

  5. python mysqldb_python学习-使用MySQLdb操作mysql数据库

    操作环境为python2.7 centos7 一.MySQLdb的安装与配置 MySQLdb是用于Python连接mysql数据库的接口,它实现了Python数据库api规范2.0. 按照以下方式安装 ...

  6. 1899-11-30 php mysql_PHP学习十一--PHP操作MYSQL数据库

    1.PHP访问Mysql数据库的一般步骤 连接MySQL服务器 选择MySQL数据库 请求               执行SQL语句                        请求 MySQL数 ...

  7. jmeter+mysql+set_jmeter学习指南之操作 mysql 数据库

    JMeter 通过 JDBC Connection Configuration 和 JDBC Request 可以连接数据库,并进行增删改查操作,支持各种常见的数据库,本文以最常用的 MySQL 数据 ...

  8. Go语言学习笔记—golang基础简介

    视频来源:B站<golang入门到项目实战 [2022最新Go语言教程,没有废话,纯干货!]> 文章为自己整理的学习笔记,侵权即删,谢谢支持! 文章目录 一.Go语言简述 二.Go语言特点 ...

  9. Go语言学习笔记—golang基础语法

    视频来源:B站<golang入门到项目实战 [2022最新Go语言教程,没有废话,纯干货!]> 文章为自己整理的学习笔记,侵权即删,谢谢支持! 文章目录 golang基础语法 一.gola ...

最新文章

  1. dw的css样式怎么删除掉,三种方法教你DreamWeaver下如何应用CSS样式
  2. arcengine遍历属性表_【程序之坑】小程序云开发导出数据到excel表
  3. Android后门GhostCtrl,完美控制设备任意权限并窃取用户数据
  4. iOS多线程之7.NSOperation的初识
  5. UOJ #590. 天天和树
  6. 利用UDEV服务解决RAC ASM存储设备名
  7. spring之@value设置默认值
  8. 一个漂亮的Bootstrap查找查询框,带下拉选择按钮
  9. SNOI2017 礼物
  10. 推美妆、搭IP,出货千万的天猫精灵打上95后的主意
  11. 阿里面试官最新分享的Java面试宝典,含8大核心内容讲解
  12. 2015-4-26分享的PDF
  13. office :word ppt excel 取消加载 有道翻译,有道云笔记插件
  14. hsql mysql_HSQL简介
  15. php excel 下拉菜单,Laravel Excel库(Maatwebsite):如何在导出中创建下拉列表 - php
  16. Vue 不睡觉教程3 - 来点实在的:自动计算剩余时间的任务列表
  17. HTML前端连接go语言后段,一次完整的浏览器请求响应过程-Go语言中文社区
  18. eNews 第二十三期/2007.04
  19. 移动端 背景音乐 自动播放
  20. 【扒开】关于赢驴准心劫持浏览器首页的病毒类行径

热门文章

  1. vlc3.0.4在ubuntu16.04x64上的交叉编译全过程记录
  2. mysql 创建索引、删除索引、查看索引sql语句
  3. Westwood的十五年
  4. SQL联合查询(内联、左联、右联、全联)的语法
  5. matlab整理符号表达式,[2018年最新整理]MATLAB符号运算与符号方程求解.ppt
  6. 奇安信浏览器下载word和excel失败 环境不适配问题
  7. [UVA 10605]钻石矿道【启发式搜索+状态压缩】
  8. Java输出数组内容
  9. CIEDE2000色差公式的介绍和相应程序
  10. 也说TCP/IP之OSI七层模型