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, ...
随机推荐
- 日志回滚:python(日志分割)
日志回滚:python 什么是日志回滚? 答: 将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能.因此,有必要对日志文件按某种条件进行切分,要切分日 ...
- Python基础笔记(一)
1. 输出 主要函数为print(),基础调用为: myName = "wayne" myAge = 18 print("My name is %s, I'm %d ye ...
- centos7 静默安装oracle
系统centos7.4 mini 关闭selinux.firewalld 配置主机名: hostnamectl set-hostname --static oracle 之前说oracle不认cen ...
- iml文件
iml是 intellij idea的工程配置文件,里面是当前projec的一些配置信息 ==== android studio svn 汉化 常规. 描述.网络.安全的shell 壳. 用命令行 ...
- [CQOI2009]跳舞
思路:二分答案+最大流.二分答案$m$,表示最多跳$m$轮.将每个人拆成两个点$a_i$$b_i$,$a_i$表示与任何人跳舞,$b_i$表示与不喜欢的人跳舞.对于第$i$个人,连一条从$a_i$到$ ...
- python基础-UDP、进程、进程池、paramike模块
1 基于UDP套接字1.1 介绍 udp是无连接的,是数据报协议,先启动哪端都不会报错 udp服务端 import socket sk = socket() #创建一个服务器的套接字 sk.bind( ...
- BZOJ4175 : 小G的电话本
用后缀树统计出出现了x次的本质不同的子串的个数,最后再乘以x,得到一个多项式. 这个多项式常数项为0,但是一次项不为0. 于是把整个多项式除以一次项,通过多项式求ln和多项式求exp求出它的幂. 最后 ...
- Code Forces 543A Writing Code
题目描述 Programmers working on a large project have just received a task to write exactly mm lines of c ...
- [java] 虚拟机(JVM)底层结构详解[转]
本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 在以前的博客里面,我们介绍了在java领域中大部分的知识点,从最基础的java最基本语法到 ...
- 刚刚看到 PNaCl, 这才是我一直期待的跨平台的好东西!
http://code.google.com/p/nativeclient/ https://developers.google.com/native-client/overview