Go语言之进阶篇连接mysql
一、Go连接mysql
1、mysql驱动
地址:https://github.com/Go-SQL-Driver/MySQL
说明:
sql.Open()函数用来打开一个注册过的数据库驱动,Go-MySQL-Driver中注册了 mysql这个数据库驱动,第二个参数是DNS,它是Go-MySQL-Driver定义的一些数据库链接和配置信息。
2、下载mysql驱动包方法
在LiteIDE中,选中"github.com/go-sql-driver/mysql" 这行代码,再点编译--->"Get",等待一会,就会自动下载完成。
代码:
package main import (
"fmt" "github.com/go-sql-driver/mysql"
)
或
#在cmd中运行安装命令
go get github.com/go-sql-driver/mysql
3、创建数据库
1、创建数据库
mysql> create database nulige character set utf8;
Query OK, 1 row affected (0.00 sec) mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| nulige |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec) mysql> use nulige
Database changed 2、建表
mysql> create table user_info(id int(11), username varchar(20), departname varch
ar(20), create_time timestamp default "0000-00-00 00:00:00", primary key(id)); 3、查看表
mysql> show tables;
+------------------+
| Tables_in_nulige |
+------------------+
| user_info |
+------------------+
1 row in set (0.00 sec) 4、查看表结构
mysql> desc user_info;
+-------------+-------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------------------+-------+
| id | int(11) | NO | PRI | 0 | |
| username | varchar(20) | YES | | NULL | |
| departname | varchar(20) | YES | | NULL | |
| create_time | timestamp | NO | | 0000-00-00 00:00:00 | |
+-------------+-------------+------+-----+---------------------+-------+
4 rows in set (0.01 sec)
5、往数据库中插入数据
示例1:
package main import (
"database/sql"
"fmt" _ "github.com/go-sql-driver/mysql"
) func main() {
db, err := sql.Open("mysql", "root:qwe!23@tcp(127.0.0.1:3306)/nulige?charset=utf8")
if err != nil {
panic(err)
} //fmt.Println(db.Ping()) 检查是否连接成功数据库
stmt, err := db.Prepare("INSERT INTO user_info SET username=?,departname=?,create_time=?")
if err != nil {
fmt.Println(err)
return
}
res, err := stmt.Exec("nulige", "商务部", "2019-1-28")
id, err := res.LastInsertId()
if err != nil {
panic(err)
} fmt.Println(id)
}
执行结果:
mysql> select * from user_info;
+----+----------+------------+---------------------+
| id | username | departname | create_time |
+----+----------+------------+---------------------+
| 0 | nulige | 商务部 | 2019-01-28 00:00:00 |
+----+----------+------------+---------------------+
1 row in set (0.00 sec)
示例2: 登录mysql,手工插入
mysql> INSERT INTO user_info (id,username,departname,create_time) VALUES ("2","n
ulige","行政部","2019-1-11 16:23:00");
Query OK, 1 row affected (0.00 sec)
mysql> select * from user_info;
+----+----------+------------+---------------------+
| id | username | departname | create_time |
+----+----------+------------+---------------------+
| 0 | nulige | 商务部 | 2019-01-28 00:00:00 |
| 1 | nulige | 技术部 | 2019-01-28 00:00:00 |
| 2 | nulige | 行政部 | 2019-01-11 16:23:00 |
+----+----------+------------+---------------------+
3 rows in set (0.00 sec)
Go语言之进阶篇连接mysql的更多相关文章
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- go语言之进阶篇接口转换
1.go语音之进阶篇 示例: package main import "fmt" type Humaner interface { //子集 sayhi() } type Pers ...
- Go语言之进阶篇mysql增 删 改 查
一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...
- (进阶篇)PHP+Mysql+jQuery找回密码
通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...
- Go语言之进阶篇爬捧腹网
1.爬捧腹网 网页规律: https://www.pengfu.com/xiaohua_1.html 下一页 +1 https://www.pengfu.com/xiaohua_2.html 主页 ...
- go语言之进阶篇http客户端编程
1.http客户端编程 示例: http_server.go package main import ( "fmt" "net/http" ) //w, 给客户 ...
- Go语言之进阶篇http服务器获取客户端的一些信息
1.http服务器获取客户端的一些信息 示例: package main import ( "fmt" "net/http" ) //w, 给客户端回复数据 / ...
- Go语言之进阶篇服务器如何知道用户需要什么资源
1.服务器如何知道用户需要什么资源 示例: package main import ( "fmt" "net" ) func main() { //监听 lis ...
- Go语言之进阶篇请求报文格式分析
1. 请求报文格式分析 示例: package main import ( "fmt" "net" ) func main() { //监听 listener, ...
随机推荐
- 模拟赛T1 素数
没有链接 描述: 给p,q,求a^2+b^2 = p*q解的个数,p,q是素数 沙雕打表结论题 然后怼了3h吼爆零 题解 首先这是个结论题 然后这是证明 代码 #include <stdio.h ...
- UOJ.41.[清华集训2014]矩阵变换(稳定婚姻)
题目链接 稳定婚姻问题:有n个男生n个女生,每个男/女生对每个女/男生有一个不同的喜爱程度.给每个人选择配偶. 若不存在 x,y未匹配,且x喜欢y胜过喜欢x当前的配偶,y喜欢x也胜过y当前的配偶 的完 ...
- BZOJ.4571.[SCOI2016]美味(主席树 贪心)
题目链接 要求 \(b\ xor\ (a_j+x)\) 最大,应让 \(a_j+x\) 的最高位尽可能与b相反.带个减法Trie树好像很难做?反正我不会. 从最高位开始,如果这位b是0/1,判断是否存 ...
- 牛客OI赛制测试赛3游记
A - 数字权重 题目大意: 一个\(n\)位的数字.设第\(i\)位的数为\(a_i\),其中\(a_1\)为最高位,\(a_n\)为最低位,\(k\)为给定的数字.求同时满足满足以下两个条件的数的 ...
- Ural 2036. Intersect Until You're Sick of It 计算几何
2036. Intersect Until You're Sick of It 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=2036 ...
- 重读JavaScript高级程序设计
不断更新中--- 第三章 基本概念 1.变量声明但未初始化值是undefined,而未声明的变量只能执行typeof操作,并且未初始化和未声明用typeof都同样返回undefined 2.Numbe ...
- 一个.net程序客户端更新方案
客户端程序一个很大的不便的地方就是程序集更新,本文这里简单的介绍一种通用的客户端更新方案.这个方案依赖程序集的动态加载,具体方案如下: 将程序集存储在一个文件数据库中,客户端所有程序集直接从文件数据库 ...
- Windows Server 2008 r2 64位激活
1.工具:CW 下载链接:https://pan.baidu.com/s/1bphOkW3 密码:80d4 2.查看系统是否激活:计算机图标点右键,选择 属性,就可以查看激活情况 3.准备好CW工具 ...
- 在ASP.NET MVC中使用Knockout实践09,自定义绑定
Knockout真正强大之处在于绑定机制,通过data-bind属性值体现绑定,不仅可以绑定值,还可以绑定事件,甚至可以自定义绑定. 从一个例子看Knockou的绑定机制 假设想给一个button元素 ...
- Java加密技术(一)——加密介绍
from://http://blog.csdn.net/janronehoo/article/details/7590772 如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 ...