go语言mysql操作_使用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数据中的一致,不然可能会造成如下错误
三、参考资料
go语言mysql操作_使用Go语言操作MySQL数据库的思路与步骤相关推荐
- MySQL入门_实战3_创建和删除数据库
MySQL入门_实战系列文章目录 MySQL入门_实战1 MYSQL安装和卸载 MySQL入门_实战2 MYSQL的登录和断开以及SQL查询常见问题 文章目录 MySQL入门_实战系列文章目录 前言 ...
- c语言将数据写入mysql中_用C语言操作MySQL数据库
先看结构体 ---------------------------------------------- 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql ...
- c 对一个mysql数据库进行操作_用C语言操作MySQL数据库
函数 描述 mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. mysql_autocommit() 切换autocommit模式 ...
- 不学c语言能学mysql吗_学C语言难不难?以及简说数据库
有很多小伙伴呢经常会问小编学习C语言和C++难不难 今天我跟大家分享一下吧 其实还好,坚持下去就可以了,看你的态度,是不是相信自己对自己有没有那个信心,看你自己将来想走一个什么样的路,如果想走程序的路 ...
- JAVA语言教学重点_《JAVA语言》教学大纲
<语言>教学大纲 课程代码: 课程总学分实验学分: 课程总学时数实验学时数: 一.课程目标 课程目的是培养学生对面向对象编程技术的理解和掌握,加强对学生"计算机编程思维" ...
- c语言有趣代码_为什么C语言永远不会过时?
直至今天还有人在喊着C语言都过时的语言了,还有什么值得去学的,看现在的python,php等语言现在用起来多简单,谁还去学习老掉牙的C语言,事实真的是这样的吗?笔者作为专门下载了这两种语言的底层源码. ...
- 定义mysql日志_请教:如何查看mysql数据定义操作的日志
展开全部 一.错误日志 错误日志在e69da5e887aa3231313335323631343130323136353331333363366164Mysql数据库中很重要,它记录着mysqld启动 ...
- C语言初阶_初识C语言(1)
凡是过往,皆为序章 期末考试结束了,真是感慨良多啊...... C语言编程题大家都做对了多少呢? 不管怎么样,都已经过去了.不管你学得怎么样,都可以在接下来的时间里,我们一起重新回顾一遍C语言初阶的知 ...
- qt的mysql编程_界面编程之QT的数据库操作20180801
/*******************************************************************************************/ 一.数据库连 ...
- apch连接mysql数据库连接_配置phpmyadmin连接远程 MySQL数据库
Mysql 服务器上面安装mysql yum -y install mysql mysql-devel mysql-server mysql-* 首次安装后,执行 #mysql 后,执行修改密码操作 ...
最新文章
- rsyslog日志管理+LogAnalyzer
- EffectiveC++编程的50个建议
- 岗位内推 | 腾讯云小微自然语言技术中心招聘NLP研究型实习生
- 新闻系统(3)内容保护的探索
- mysql新增阵列df_DF学Mysql(三)——索引操作
- dj鲜生-通过邮箱发送加密的激活链接
- 高性能服务器-Nginx
- 关于_beginthreadex、_beginthread和CreateThread
- relative会脱离文档流吗_抖音投放你会吗?选Feed流还是Dou+?
- Spine(2d动画制作软件)绿色中文最终优化版V3.8.75 | spine动画软件下载
- python 爬虫 客户端_python爬虫
- 逻辑回归分类——信用卡诈骗检测!这才是干货!
- OpenGL with QtWidgets:练习之甜甜圈
- 宋体查询1.mysql数据库复习加强 2.mysql事务触发器 3.mysql 索引外键加强 4.zendstudio 的安装使用 5.svn版本控制器的使用-java教程...
- The Apache Way - 开源项目
- 独家 | 揭底!BiYong被爆严重用户隐私安全漏洞!
- laravel安装 nwidart/laravel-modules 出现的问题
- 中国计算机学会举办首届未来计算机教育峰会
- 区块链技术+二维码,打造爱码物联产品质量溯源软件
- 婚恋职场人格-张晓文-武汉理工大学-中国MOOC-人格知识大比武测试题参考答案
热门文章
- hazelcast 使用_使用Hazelcast发布和订阅
- java 8 lambda_Java 8 Lambda演练
- specs.4.8.gz_使用Specs2和客户端API 2.0进行富有表现力的JAX-RS集成测试
- java ee cdi_Java EE CDI bean范围
- 信守承诺:JAX-RS API的基于合同的测试
- ejb 2.0 3.0_Java EE 6测试第I部分– EJB 3.1可嵌入API
- SWT ScrolledComposite解释
- 创建Maven源代码和Javadoc工件
- 单元测试线程代码的5个技巧
- 只读ViewObject和声明性SQL模式