GO连接数据库--踩坑(超详细)
当使用go语言对数据进行连接时需要几部操作:
1.数据库侧:
需要允许远程连接,具体操作方法详见:本地主机连接阿里云数据库(自建数据库)排雷_秋为春的博客-CSDN博客
2.GO侧
1)需要引入go-sql-driver驱动
常见的引入方法有两种:
①通过命令行——前提是go的各个环境变量要配置好
go get -u github.com/go-sql-driver/mysql
②通过git进行复制
首先你的电脑要支持git这个命令,如果不支持需要下载安装Git下载地址给你放这了:
Git for Windows
下载安装后,直接把驱动Git到go path目录下:
git clone github.com/go-sql-driver/mysql
之后在go中使用用这个驱动:
import ("database/sql""fmt"_ "mysql" //引入
)
验证是否可以使用go对数据库进行操作:
首先创建一个数据库:
create database test;
以及一个表:
create table table(id int(4),name char(20))
通过GO代码对数据库进行简单操作:
语法详解:
sql.open(驱动名,数据源dsn)(*DB,err)数据源语法:"用户名:密码@[连接方式](主机名:端口号)/数据库名"注意:open()在执行时不会真正的与数据库进行连接,只是设置连接数据库需要的参数
ping()方法才是连接数据库
代码操作:
package main
import (
"database/sql"
"fmt"
_ "mysql"
)
func main() {db, err := sql.Open("mysql", "root:xxx@(xxxx:3306)/test")checkErr(err)// insertstmt, err := db.Prepare("INSERT ta SET id=?,name=?")checkErr(err)res, err := stmt.Exec(1, "wang")checkErr(err)// updatestmt, err = db.Prepare("update ta set name=? where id=?")checkErr(err)res, err = stmt.Exec("wang", 1)checkErr(err)affect, err := res.RowsAffected()checkErr(err)fmt.Println(affect)// queryrows, err := db.Query("SELECT * FROM ta")checkErr(err)for rows.Next() {var uid intvar username stringerr = rows.Scan(&uid, &username)checkErr(err)fmt.Println(uid)fmt.Println(username)}// deletestmt, err = db.Prepare("delete from ta where id=?")checkErr(err)res, err = stmt.Exec(1)checkErr(err)// queryrows, err = db.Query("SELECT * FROM ta")checkErr(err)for rows.Next() {var uid intvar username stringerr = rows.Scan(&uid, &username)checkErr(err)fmt.Println(uid)fmt.Println(username)}db.Close()
}
func checkErr(err error) {if err != nil {panic(err)}
}
验证:
GO连接数据库--踩坑(超详细)相关推荐
- 第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密 java.lang.ClassNotFoundException 踩坑解决问题详细内幕版本
第91课:SparkStreaming基于Kafka Direct案例实战和内幕源码解密 /* * *王家林老师授课http://weibo.com/ilovepains */ 每天晚上20: ...
- pytorch无坑超详细图文CPU版小白安装教程(配gpu版链接、conda命令教程)
想安装gpu版本的朋友们请移步gpu版pytorchan安装教程直达 文章目录 创建.激活.退出.删除环境 法一:官网默认指令安装(可能比较慢) 法二:更换清华源下载 法三:下载包安装 版本对应问题 ...
- 【避坑 超详细】Ubuntu使用python的selenium以及chrome模拟真实浏览器访问网页
在Ubuntu系统上使用python的selenium,另外加上chrome和chromedriver,用于模拟浏览器访问网页. 下面教程在阿里云的Ubuntu 14.04 64位测试成功,其他lin ...
- 从无到有 Ubuntu16.04 18.04 20.04安装+Todesk+Chrome+NVIDIA驱动+CUDA+Cudnn+Anaconda3+Pycharm 超详细教程+踩坑问题
从无到有 Ubuntu16.04 18.04 20.04安装+Todesk+Chrome+NVIDIA驱动+CUDA+Cudnn+Anaconda3+Pycharm 超详细教程+踩坑问题(有部分图片忘 ...
- MMDetectionV2 + Colab 超详细教程及踩坑实录
文章目录 前言 一.环境配置 二.准备自己的数据集 Aug.14更新 三:修改config文件 3.1 文件结构 3.2 (本地)修改config文件 3.2.1 (本地)构造自己模型的权重文件 3. ...
- Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack3.3,python2.7,torch1.2,torchvision0.2.2)
本文总结了自带系统安装cuda等深度学习环境和使用jetpack3.3刷机的步骤,虽然自己的代码没用上,但有需要的人可以参考一下. PS:Jetpack4.5的刷机教程请移步另一篇文章: xyl-50 ...
- 厚积薄发打卡Day55 :[狂神]Redis详细教程(上)<从Nosql 概述到WSL安装Redis踩坑记录>
视频教程:[狂神说Java]Redis最新超详细版教程通俗易懂 Nosql概述 时代背景: 1.单机数据库时代 90年代:一个基本的网站访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去使用 ...
- mysql连接idea详细教程_idea配置连接数据库的超详细步骤
学习时,使用IDEA的时候,需要连接Database,连接时遇到了一些小问题,下面记录一下操作流程以及遇到的问题的解决方法. 一. 连接操作 简介:介绍如何创建连接,具体连接某个数据库的操作流程. 1 ...
- rtl8811au黑苹果10.15_荣耀MagicBook I5黑苹果折腾记(超详细教程与排坑)
本文主要介绍如何安装Win10 + Mac OS双系统,以及安装过程中可能遇到的一些坑. 本人的机型是:MagicBook I5-8250U MX150独显 8GB+256GB (VLT-W50),更 ...
最新文章
- 华为(苏州)人工智能创新中心正式揭牌
- Java 8 - 07 复合 Lambda 表达式
- SharePoint Calendar Webparts
- NTP时间服务器安装
- 快速排序算法-php实现
- 《高效程序员的45个习惯》-之二
- JavaSE——XML与JSON(语法格式、解析内容)
- Huffman编码的设计与实现
- 一加Ace渲染图曝光:大眼三摄+150W超快闪充
- GTK+ tutorial
- 用电脑更新手机ios系统_macOS 11 正式版体验:大更新!苹果把 iOS 风格搬到了电脑上...
- iscsi:IO操作流程(三)
- %Error opening tftp://255.255.255.255/network config
- Apache Traffic Server服务搭建
- 英雄联盟加载的时候特卡,排查记录:win10那些破玩意
- 冰冻三尺,非一日之寒。数据解析——xpath(2)
- Linux date命令-d、--date选项接受的时间描述字符串的格式详解
- ELK企业应用-ekl快速搭建-kibana
- 百度新闻爬虫搜索引擎实战---爬虫篇(2)
- 自建团队app公司外包免编程app打包平台优缺点分析
热门文章
- Python自制随机食物生成器(食物可自拟)
- 世界上第一台计算机的速度,计算机IBM的蓝色基因(BlueGene/L),速度是世界上第一台电子计算机ENIAC的()倍...
- php中插入表格 标签,列表,表格,添加表单及标签用法-2019.9.1
- java毕业设计C语言程序设计》在线自学习系统Mybatis+系统+数据库+调试部署
- DataGrip使用
- 高温报警c语言程序,51单片机实验程序:LCD1602显示温度报警
- ip route 路由命令详解
- 朴素贝叶斯算法实现英文文本分类
- opensuse 关闭防火墙
- Laypage完整分页示例