最近在做注册登录服务时,学习用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数据库的思路与步骤相关推荐

  1. MySQL入门_实战3_创建和删除数据库

    MySQL入门_实战系列文章目录 MySQL入门_实战1 MYSQL安装和卸载 MySQL入门_实战2 MYSQL的登录和断开以及SQL查询常见问题 文章目录 MySQL入门_实战系列文章目录 前言 ...

  2. c语言将数据写入mysql中_用C语言操作MySQL数据库

    先看结构体 ---------------------------------------------- 以下代码块是用来连接数据库的通讯过程,要连接MYSQL,必须建立MYSQL实例,通过mysql ...

  3. c 对一个mysql数据库进行操作_用C语言操作MySQL数据库

    函数 描述 mysql_affected_rows() 返回上次UPDATE.DELETE或INSERT查询更改/删除/插入的行数. mysql_autocommit() 切换autocommit模式 ...

  4. 不学c语言能学mysql吗_学C语言难不难?以及简说数据库

    有很多小伙伴呢经常会问小编学习C语言和C++难不难 今天我跟大家分享一下吧 其实还好,坚持下去就可以了,看你的态度,是不是相信自己对自己有没有那个信心,看你自己将来想走一个什么样的路,如果想走程序的路 ...

  5. JAVA语言教学重点_《JAVA语言》教学大纲

    <语言>教学大纲 课程代码: 课程总学分实验学分: 课程总学时数实验学时数: 一.课程目标 课程目的是培养学生对面向对象编程技术的理解和掌握,加强对学生"计算机编程思维" ...

  6. c语言有趣代码_为什么C语言永远不会过时?

    直至今天还有人在喊着C语言都过时的语言了,还有什么值得去学的,看现在的python,php等语言现在用起来多简单,谁还去学习老掉牙的C语言,事实真的是这样的吗?笔者作为专门下载了这两种语言的底层源码. ...

  7. 定义mysql日志_请教:如何查看mysql数据定义操作的日志

    展开全部 一.错误日志 错误日志在e69da5e887aa3231313335323631343130323136353331333363366164Mysql数据库中很重要,它记录着mysqld启动 ...

  8. C语言初阶_初识C语言(1)

    凡是过往,皆为序章 期末考试结束了,真是感慨良多啊...... C语言编程题大家都做对了多少呢? 不管怎么样,都已经过去了.不管你学得怎么样,都可以在接下来的时间里,我们一起重新回顾一遍C语言初阶的知 ...

  9. qt的mysql编程_界面编程之QT的数据库操作20180801

    /*******************************************************************************************/ 一.数据库连 ...

  10. apch连接mysql数据库连接_配置phpmyadmin连接远程 MySQL数据库

    Mysql 服务器上面安装mysql yum -y install mysql mysql-devel mysql-server mysql-* 首次安装后,执行 #mysql 后,执行修改密码操作 ...

最新文章

  1. rsyslog日志管理+LogAnalyzer
  2. EffectiveC++编程的50个建议
  3. 岗位内推 | 腾讯云小微自然语言技术中心招聘NLP研究型实习生
  4. 新闻系统(3)内容保护的探索
  5. mysql新增阵列df_DF学Mysql(三)——索引操作
  6. dj鲜生-通过邮箱发送加密的激活链接
  7. 高性能服务器-Nginx
  8. 关于_beginthreadex、_beginthread和CreateThread
  9. relative会脱离文档流吗_抖音投放你会吗?选Feed流还是Dou+?
  10. Spine(2d动画制作软件)绿色中文最终优化版V3.8.75 | spine动画软件下载
  11. python 爬虫 客户端_python爬虫
  12. 逻辑回归分类——信用卡诈骗检测!这才是干货!
  13. OpenGL with QtWidgets:练习之甜甜圈
  14. 宋体查询1.mysql数据库复习加强 2.mysql事务触发器 3.mysql 索引外键加强 4.zendstudio 的安装使用 5.svn版本控制器的使用-java教程...
  15. The Apache Way - 开源项目
  16. 独家 | 揭底!BiYong被爆严重用户隐私安全漏洞!
  17. laravel安装 nwidart/laravel-modules 出现的问题
  18. 中国计算机学会举办首届未来计算机教育峰会
  19. 区块链技术+二维码,打造爱码物联产品质量溯源软件
  20. 婚恋职场人格-张晓文-武汉理工大学-中国MOOC-人格知识大比武测试题参考答案

热门文章

  1. hazelcast 使用_使用Hazelcast发布和订阅
  2. java 8 lambda_Java 8 Lambda演练
  3. specs.4.8.gz_使用Specs2和客户端API 2.0进行富有表现力的JAX-RS集成测试
  4. java ee cdi_Java EE CDI bean范围
  5. 信守承诺:JAX-RS API的基于合同的测试
  6. ejb 2.0 3.0_Java EE 6测试第I部分– EJB 3.1可嵌入API
  7. SWT ScrolledComposite解释
  8. 创建Maven源代码和Javadoc工件
  9. 单元测试线程代码的5个技巧
  10. 只读ViewObject和声明性SQL模式