经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
使用Go语言操作MySQL数据库的思路与步骤
来源:cnblogs  作者:Zoctopus·Lian  时间:2018/9/25 20:31:03  对本文有异议

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

软件环境:Goland、Navicat for MySQL。

一、实现思路

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

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

 

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

  

2,增加的操作

输入对应的数据

  1. fmt.Println("请输入用户ID:")
  2. fmt.Scan(&Userid)
  3. fmt.Println("请输入名字:")
  4. fmt.Scan(&Username)
  5. fmt.Println("请输入部门:")
  6. fmt.Scan(&Departname)
  7. fmt.Println("请输入进部门时间")
  8. fmt.Scan(&Created)
  9.  
  10.  
  11. //插入数据
  12. stmt,err := db.Prepare("INSERT userif SET userid=?,username=?,departname=?,created=?")
  13. CheckErr(err)
  14.  
  15. res,err := stmt.Exec(Userid,Username,Departname,Created)
  16. CheckErr(err)
  17.  
  18. id,err := res.LastInsertId()
  19.  
  20. fmt.Println(id)

  

3,查询的操作

  1. rows,err := db.Query("SELECT * FROM userif")
  2. CheckErr(err)
  3.  
  4. for rows.Next(){
  5. err = rows.Scan(&Id,&Userid,&Created,&Departname,&Username)
  6. CheckErr(err)
  7. fmt.Println(Userid)
  8. fmt.Println(Username)
  9. fmt.Println(Departname)
  10. fmt.Println(Created)
  11. }

  

4,更新的操作

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

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

  

5,删除的操作

  1. fmt.Println("请输入要删除的用户ID:")
  2. fmt.Scan(&Userid)
  3. stmt,err := db.Prepare("DELETE from userif where userid=?")
  4. CheckErr(err)
  5.  
  6. res,err := stmt.Exec(Userid)
  7. CheckErr(err)
  8.  
  9. affect,err := res.RowsAffected()
  10. CheckErr(err)
  11.  
  12. fmt.Println(affect)

 

二、注意点

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

 

 

三、参考资料

go-sql-driver

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号