专栏首页章鱼的慢慢技术路使用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-sql-driver

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 在Linux下使用gcc编译mesa文件报undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line两个

    在Ubuntu下安装好mesa所需的库文件,将目标文件从github上克隆下来之后编译。

    Zoctopus
  • 输出图案类问题的思路

    Zoctopus
  • 《算法图解》第一章笔记与课后练习

    Zoctopus
  • Leetcode-Easy 867.Transpose Matrix

    致Great
  • NVIDIA发布新“掌中宝”开发套件:原来你是这样的Jetson Xavier

    GPUS Lady
  • 自然语言处理 | 隐马尔可夫模型(2)

    Defu Li
  • zabbix发送带有图片的报警邮件

    没有故事的陈师傅
  • 翻译连载 | 附录 B: 谦虚的 Monad-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 JavaScript 轻量级函数...

    iKcamp
  • 理解Go语言Web编程(下)

    ListenAndServe函数 前面所有示例程序中,都在main函数中调用了ListenAndServe函数。下面对此函数所做的工作进行分析。该函数的实现为:...

    李海彬
  • 让Monad来得更猛烈些吧_Haskell笔记11

    最早接触过IO Monad,后来又了解了Maybe Monad和List Monad,实际上还有很多Monad(比如Writer Monad、Reader Mo...

    ayqy贾杰

扫码关注云+社区

领取腾讯云代金券