使用Go语言操作MySQL数据库的思路与步骤
时间:2022-06-08
本文章向大家介绍使用Go语言操作MySQL数据库的思路与步骤,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
最近在做注册登录服务时,学习用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数据中的一致,不然可能会造成如下错误
三、参考资料
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(52)-美化EasyUI皮肤和图标
- ASP.NET MVC5+EF6+EasyUI 后台管理系统--系统权限全套完整图
- 互联网时代的产品升级和用户反馈故事
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(50)-Easyui 扁平化皮肤
- 微信终于做了它最擅长的业务,市场已经轰动
- Bootstrap Metronic 学习记录(二)菜单栏
- WCF技术剖析之十一:异步操作在WCF中的应用(上篇)
- Bootstrap Metronic 学习记录(一)简介
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(49)-工作流设计-我的申请
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(47)-工作流设计-补充
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(46)-工作流设计-设计分支
- 瑞典研发未来概念车,车厢、底盘能分离,颠覆汽车使用方式
- WCF技术剖析之十一:异步操作在WCF中的应用(下篇)
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(45)-工作流设计-设计步骤
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- (九)整合spring cloud云服务架构 - commonservice-config配置服务搭建
- SessionStorage、LocalStorage详解
- 草率了,又一个Maven打包的问题
- MySQL案例:count(*)和count(1)的效率问题
- 监控、链路追踪、日志这三者有何区别?
- 预训练模型超全知识点梳理与面试必备高频FAQ
- 【论文投稿】SOTA论文也未必能被接收,谷歌科学家Eric Jang谈顶会审稿标准
- 【EMNLP2020】超越MLM,微软打造全新预训练任务
- snmp协议的相关资料
- Nodejs全栈入门-慕课网
- 产品工作基本流程
- Linux系统基础知识
- 软件产品经理的职责有哪些?
- Mac苹果系统安装之EXSI操作
- 安卓自动化之ADB操作