博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Go语言操作MySQL数据库的思路与步骤
阅读量:6998 次
发布时间:2019-06-27

本文共 1754 字,大约阅读时间需要 5 分钟。

最近在做注册登录服务时,学习用Go语言操作MySQL数据库实现用户数据的增删改查,现将个人学习心得总结如下,另外附有,欢迎各位有兴趣的fork。

软件环境:Goland、Navicat for MySQL。

一、实现思路

1,我的总体设计思路是先写出连接数据库和关闭数据库的逻辑,再建立四个分支,根据用户的选择分别进入增删改查的操作;

func DBstart() {	db,_= sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306)/dbtest?charset=utf8") //dbtest为我新建立的数据库名	fmt.Println("mysql start succcessed !")}

 

func DBclose(){	//关闭数据库	db.Close()	fmt.Println("database closed")}

  

2,增加的操作

输入对应的数据

fmt.Println("请输入用户ID:")	fmt.Scan(&Userid)	fmt.Println("请输入名字:")	fmt.Scan(&Username)	fmt.Println("请输入部门:")	fmt.Scan(&Departname)	fmt.Println("请输入进部门时间")	fmt.Scan(&Created)	//插入数据	stmt,err := db.Prepare("INSERT userif SET userid=?,username=?,departname=?,created=?")	CheckErr(err)	res,err := stmt.Exec(Userid,Username,Departname,Created)	CheckErr(err)	id,err := res.LastInsertId()	fmt.Println(id)

  

3,查询的操作

rows,err := db.Query("SELECT * FROM userif")	CheckErr(err)	for rows.Next(){		err = rows.Scan(&Id,&Userid,&Created,&Departname,&Username)		CheckErr(err)		fmt.Println(Userid)		fmt.Println(Username)		fmt.Println(Departname)		fmt.Println(Created)}

  

4,更新的操作

根据提示输入要更新的内容,然后转到对应的更新语句

fmt.Println("请输入要查询的用户ID:")	fmt.Scan(&Userid)	fmt.Println("请输入要更新的内容:a-名字;b-部门;c-进部门的时间:")	var s string	fmt.Scan(&s)	switch s {	case "a":		fmt.Println("请输入要更改用户ID为%d的名字",Userid)		fmt.Scan(&Username)		fmt.Println(Username)		fmt.Println(Userid)		stmt,err := db.Prepare("UPDATE userif SET username=? where userid=?")		CheckErr(err)                ......//以此类推}

  

5,删除的操作

fmt.Println("请输入要删除的用户ID:")	fmt.Scan(&Userid)	stmt,err := db.Prepare("DELETE from userif where userid=?")	CheckErr(err)	res,err := stmt.Exec(Userid)	CheckErr(err)	affect,err := res.RowsAffected()	CheckErr(err)	fmt.Println(affect)

 

二、注意点

1,在查找操作中注意输入与输出对应的列名是否与MySQL数据中的一致,不然可能会造成如下错误

 

 

三、参考资料

 

转载地址:http://ozovl.baihongyu.com/

你可能感兴趣的文章
[你不知道的 JavaScript 类型和语法] 第一章:类型
查看>>
微软可能是全球最大的开源贡献者,但开发者似乎并不买账
查看>>
浅谈 iOS 之 Crash log 符号化
查看>>
npm 企业版 npm Enterprise 正式发布,主打安全性
查看>>
Jenkins部署码云SpringBoot项目
查看>>
洛谷 P1318 积水面积
查看>>
本地git仓库提交远程失败的解决办法
查看>>
理解alivc_framework 状态机
查看>>
性能优化技巧 - 程序游标
查看>>
让DBA不再从入门到放弃,落地SQL审核的正确路径 ...
查看>>
2019年20个最佳Python人工智能和机器学习开源工具(项目) ...
查看>>
Oracle 一次疑似Bug 14283239 - High CPU/IO for dictionary SQL against SYSAUTH$的处理
查看>>
阿里云:工厂车间是一个广阔的天地,在那里大有作为
查看>>
.Net 三款工作流引擎比较:WWF、netBPM 和 ccflow
查看>>
Atom飞行手册翻译: 4.4 Atom中的序列化
查看>>
Tips For Views
查看>>
小程序中其他相关的api总结
查看>>
简单介绍 Swift on Fedora —— 在 Fedora 中使用 Swift
查看>>
在SpringAOP中如何获取方法的参数值(实体类)以及参数名
查看>>
SNMP:简单网络管理协议
查看>>