未加星标

MySQL Go驱动

字体大小 | |
[数据库(mysql) 所属分类 数据库(mysql) | 发布者 店小二04 | 时间 2019 | 作者 红领巾 ] 0人收藏点击收藏

mysql基础见 菜鸟教程 ;

本文参考了 astaxie/build-web-application-with-golang .

创建数据库

编写test.sql


MySQL Go驱动

source test.sql 文件


MySQL Go驱动
编写Go文件

test.go 内容如下:

package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "root:root@/test") //打开数据库test checkErr(err) stm, err := db.Prepare("DROP TABLE IF EXISTS userinfo;") //准备SQL语句,删除数据表 checkErr(err) _, err = stm.Exec() //Excute, 执行语句 checkErr(err) stm, err = db.Prepare(`CREATE TABLE userinfo ( uid INT(10) NOT NULL AUTO_INCREMENT, name VARCHAR(64) NOT NULL DEFAULT '匿名', city VARCHAR(64) NULL DEFAULT '不详', moment DATE NOT NULL DEFAULT '1949-10-10', PRIMARY KEY (uid) ) DEFAULT CHARSET=utf8;`) //创建数据表,设置utf8以支持中文字符 checkErr(err) _, err = stm.Exec() checkErr(err) //增加数据 stm, err = db.Prepare("INSERT userinfo SET name=?, city=?, moment=?") //准备SQL语句 checkErr(err) _, err = stm.Exec("诸葛亮", "山东临沂", "234-10-8") //Excute, 传入参数并执行 checkErr(err) _, err = stm.Exec("关羽", "山西运城", "220-1-1") checkErr(err) _, err = stm.Exec("荀_g", "河南许昌", "212-1-1") checkErr(err) stm, err = db.Prepare("INSERT userinfo SET city=?") checkErr(err) res, err := stm.Exec("河南禹州") id, err := res.LastInsertId() checkErr(err) fmt.Println("最后插入的用户序号为:", id) //查询数据 rows, err := db.Query("SELECT * FROM userinfo") checkErr(err) fmt.Println("打印数据表的每行信息:") fmt.Println("---------------------") for rows.Next() { var uid int var name string var city string var moment string err = rows.Scan(&uid, &name, &city, &moment) checkErr(err) fmt.Print(uid, " ") fmt.Print(name, " ") fmt.Print(city, " ") fmt.Println(moment) } //删除数据 stm, err = db.Prepare("DELETE FROM userinfo WHERE uid=?") checkErr(err) res, err = stm.Exec(2) checkErr(err) fmt.Println("删除了第2行") //更改数据 stm, err = db.Prepare("UPDATE userinfo SET name=? WHERE uid=? OR uid=?") checkErr(err) res, err = stm.Exec("郭嘉", id-1, id) checkErr(err) affect, err := res.RowsAffected() checkErr(err) fmt.Println("总共有", affect, "行的信息发生了更改") //查询数据 rows, err = db.Query("SELECT * FROM userinfo") checkErr(err) fmt.Println("打印数据表的每行信息:") fmt.Println("---------------------") for rows.Next() { var uid int var name string var city string var moment string err = rows.Scan(&uid, &name, &city, &moment) checkErr(err) fmt.Print(uid, " ") fmt.Print(name, " ") fmt.Print(city, " ") fmt.Println(moment) } db.Close() } func checkErr(err error) { if err != nil { panic(err) } }

运行结果:


MySQL Go驱动

进入MySQL查看数据表:


MySQL Go驱动

本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

代码区博客精选文章
分页:12
转载请注明
本文标题:MySQL Go驱动
本站链接:https://www.codesec.net/view/627818.html


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(49)