Golang mysql
还是那句话,服务器嘛,每个数据库支持,那成啥子啦嘛!
好吧,今天,就让Go能连上数据库,当然是之前给你铺垫的MySql的啦,哈哈
一。安装第三方包支持访问mysql数据库
#go get github.com/go-sql-driver/mysql
二。写一个主程序
//database.go
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func checkErr(err error) {
if err != nil {
panic(err)
}
}
func main() {
//打开数据库mytest
fmt.Println("open the database, mytest")
db, err := sql.Open("mysql", "root:11111111@tcp(127.0.0.1:3306)/mytest?charset=utf8")
checkErr(err)
//插入数据
fmt.Println("insert data info into table, userinfo")
stmt, err := db.Prepare("INSERT userinfo SET username=?,departname=?,created=?")
checkErr(err)
res, err := stmt.Exec("Test", "people", "2017-10-27")
checkErr(err)
//记录ID
fmt.Println("record the ID of affecting item")
id, err := res.LastInsertId()
checkErr(err)
fmt.Println(id)
//更新数据
fmt.Println("update data info where id was conform to be affected")
stmt, err = db.Prepare("update userinfo set username=? where uid=?")
checkErr(err)
res, err = stmt.Exec("man", id)
checkErr(err)
affect, err := res.RowsAffected()
checkErr(err)
fmt.Println(affect)
//查询数据
fmt.Println("query data info from table, userinfo")
rows, err := db.Query("SELECT * FROM userinfo")
checkErr(err)
fmt.Println("iterator data info to show")
for rows.Next() {
var uid int
var username string
var department string
var created string
err = rows.Scan(&uid, &username, &department, &created)
checkErr(err)
fmt.Println(uid)
fmt.Println(username)
fmt.Println(department)
fmt.Println(created)
}
//删除数据
stmt, err = db.Prepare("delete from userinfo where uid=?")
checkErr(err)
res, err = stmt.Exec(id)
checkErr(err)
affect, err = res.RowsAffected()
checkErr(err)
fmt.Println(affect)
//关闭数据库mytest
db.Close()
}
三。建立数据库和表
mysql>create database mytest;
mysql>use mytest;
mysql> CREATE TABLE `userinfo` (
-> `uid` INT(10) NOT NULL AUTO_INCREMENT,
-> `username` VARCHAR(64) NULL DEFAULT NULL,
-> `departname` VARCHAR(64) NULL DEFAULT NULL,
-> `created` DATE NULL DEFAULT NULL,
-> PRIMARY KEY (`uid`)
-> );
四。结果
# ./database
open the database, mytest
insert data info into table, userinfo
record the ID of affecting item
4
update data info where id was conform to be affected
1
query data info from table, userinfo
iterator data info to show
4
man
people
2017-10-27
1
Finally:
哈哈,数据库都给你配上了,诸位还不开始Go(滚)吗?
哈哈哈哈哈哈哈
Golang mysql的更多相关文章
- golang mysql 如何设置最大连接数和最大空闲连接数
本文介绍golang 中连接MySQL时,如何设置最大连接数和最大空闲连接数. 关于最大连接数和最大空闲连接数,是定义在golang标准库中database/sql的. 文中例子连接MySQL用的SQ ...
- Golang mysql 上线的一个坑 Db.close重要性
急冲冲完成的mysql的一个监控自动处理程序上线了,线下处理是正常的,没想到线上才半小时就奔溃了. 现在时间是晚上11点,心慌焦虑涌上心头,需要熬夜?肾上腺素激增. 程序主要是一个定时任务的处理程序, ...
- golang mysql 的 packet sequence error 这个错
在公司用golang 写了个插入外链数据的服务,这服务是2016年写的,大概作用就是,python 爬取的数据,要同步到 wordpress中,golang就负责,将数据整理,图片下载弄到 wordp ...
- golang Mysql -- Tx
Transaction 事务 事务处理是数据的重要特性.尤其是对于一些支付系统,事务保证性对业务逻辑会有重要影响.golang的mysql驱动也封装好了事务相关的操作.我们已经学习了db的Query和 ...
- Golang mysql数据库
基本操作: Open() – create a DB Close() - close the DB Query() - 查询 QueryRow() -查询行 Exec() -执行操作,update,i ...
- golang mysql demo
Go操作Mysql数据库 使用Go操作MySQL等数据库,一般有两种方式:一是使用database/sql接口,直接在代码里硬编码sql语句:二是使用gorm,即对象关系映射的方式在代码里抽象的操作数 ...
- golang mysql 模糊查询
db.SqlDB.Query("SELECT id,name FROM test_table where title name like CONCAT('%',?,'%');", ...
- 我的Vue之旅 10 Gin重写后端、实现页面详情页 Mysql + Golang + Gin
第三期 · 使用 Vue 3.1 + Axios + Golang + Mysql + Gin 实现页面详情页 使用 Gin 框架重写后端 Gin Web Framework (gin-gonic.c ...
- 初步认知MySQL metadata lock(MDL)
http://blog.itpub.net/26515977/viewspace-1208250/ 概述 随着5.5.3引入MDL,更多的Query被“Waiting for table metada ...
随机推荐
- 常用Common集合
Log using System; using System.IO; using System.Linq; using System.Text; namespace Common { public c ...
- 文件下载报错:引发类型为“System.OutOfMemoryException”的异常-.Net 内存溢出
CSDN:http://blog.csdn.net/huwei2003/article/details/53559272 设置了也没有用,于是想到手动清理应用程序池,但又迁配置问题于是改成最后的方式! ...
- 计蒜客 31434 - 广场车神 - [DP+前缀和]
题目链接:https://nanti.jisuanke.com/t/31434 小 D 是一位著名的车手,他热衷于在广场上飙车.每年儿童节过后,小 D 都会在广场上举行一场别样的车技大赛. 小 D 所 ...
- 知识驱动对话-Learning to Select Knowledge for Response Generation in Dialog Systems-阅读笔记
今日看了一篇文章<Learning to Select Knowledge for Response Generation in Dialog Systems>,以知识信息.对话目标.对话 ...
- TCP协议和TCP/IP(簇)
TCP协议(传输层) 用于应用程序之间的通信. 连接的建立是经过三次握手,断开的时候四次挥手. TCP 包头很复杂,但是主要关注五个问题,顺序问题,丢包问题,连接维护,流量控制,拥塞控制 状态位例如: ...
- linux:基本概念和操作
1. 终端 Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说这里应该是 6 个 virtual consoles)来让用户登录,在物理机系统上你可以通过使用[Ctrl]+[ ...
- 使用flask写移动端API
环境 python 3.7 使用pip 安装falsk pip3 install flask #!flask/bin/python from flask import Flask, jsonify, ...
- zabbix自动发现主机并加入组绑定模板
在被监控主机多的情况下,怎样将这些主机加入zabbix server进行监控呢?下面将介绍下zabbix自动发现功能 1.创建自动发现规则 创建“规则名称,配置ip范围及检查方式”,点击“增加”,完成 ...
- NULL - AUTO_INCREMENT
http://dev.mysql.com/doc/refman/5.7/en/create-table.html Data Types and Attributes for Columns data_ ...
- php性能提升与检测
1.使用xhprof分析器检测性能各种消耗 2.php-fpm中进程池的配置参数查看最大进程数.进程最大处理http请求量.进程时间过多的http请求.每个进程使用的最大内存. 参考地址:https: ...