一、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的更多相关文章

  1. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  2. go语言之进阶篇接口转换

    1.go语音之进阶篇 示例: package main import "fmt" type Humaner interface { //子集 sayhi() } type Pers ...

  3. Go语言之进阶篇mysql增 删 改 查

    一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...

  4. (进阶篇)PHP+Mysql+jQuery找回密码

    通常所说的密码找回功能不是真的能把忘记的密码找回,因为我们的密码是加密保存的,一般开发者会在验证用户信息后通过程序生成一个新密码或者生成一个特定的链接并发送邮件到用户邮箱,用户从邮箱链接到网站的重置密 ...

  5. Go语言之进阶篇爬捧腹网

    1.爬捧腹网 网页规律: https://www.pengfu.com/xiaohua_1.html   下一页 +1 https://www.pengfu.com/xiaohua_2.html 主页 ...

  6. go语言之进阶篇http客户端编程

    1.http客户端编程 示例: http_server.go package main import ( "fmt" "net/http" ) //w, 给客户 ...

  7. Go语言之进阶篇http服务器获取客户端的一些信息

    1.http服务器获取客户端的一些信息 示例: package main import ( "fmt" "net/http" ) //w, 给客户端回复数据 / ...

  8. Go语言之进阶篇服务器如何知道用户需要什么资源

    1.服务器如何知道用户需要什么资源 示例: package main import ( "fmt" "net" ) func main() { //监听 lis ...

  9. Go语言之进阶篇请求报文格式分析

    1. 请求报文格式分析 示例: package main import ( "fmt" "net" ) func main() { //监听 listener, ...

随机推荐

  1. 命令:tr

    参考资料:https://www.thegeekstuff.com/2012/12/linux-tr-command/ 简介 tr命令用于转换.删除或者去除重复字符.它从STDIN中读取数据并且将其写 ...

  2. Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇

    转载:Home Assistant + 树莓派:强大的智能家居系统 · 设备接入篇 目录 HASS 配置框架 主文件设置 Homebridge 设置 鹬蚌相争? 设备追踪设置 更新日志 作者的话 相信 ...

  3. [mysql] update……from……

    今天插入一条数据就像这样 limit ), , )) 然后报错: You can't specify target table 'categorys' for update in FROM claus ...

  4. Win7无法添加用户的问题

    这段时间搞dcom的东西,然后按照网上说的,用dcomcnfg打开管理器,在dcom中我的电脑里面属性中把默认身份验证级别改为 无.然后再使用的时候,发现win7中的账户管理里面,什么账户都没有了,不 ...

  5. Linux设备驱动之USB

    Linux驱动框架分析(一)        事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的 ...

  6. Your local changes to the following files would be overwritten by merge: ... Please, commit your changes or stash them before you can merge

    Git出现error: Your local changes to the following files would be overwritten by merge: ... Please, com ...

  7. HDU 5836 Rubik's Cube BFS

    Rubik's Cube 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5836 Description As we all know, Zhu is ...

  8. VS2013发布网站删除.CS文件

    VS2013发布网站时,默认不删除.CS文件,想要删除的话,需要一些配置   1.在要发布的网站上右键,选择"发布网站". 2.在发布窗口中,会让你选择一个发布配置文件,没有的话点 ...

  9. UNICODE 区域对照表

    0000-007F Basic Latin 基本拉丁字母 0080-00FF Latin-1 Supplement 拉丁字母補充-1 0100-017F Latin Extended-A 拉丁字母擴充 ...

  10. JTAG Communications model

    https://en.wikipedia.org/wiki/Joint_Test_Action_Group In JTAG, devices expose one or more test acces ...