最近在做注册登录服务时,学习用go语言操作mysql数据库实现用户数据的增删改查,现将个人学习心得总结如下,另外附有代码仓库地址,欢迎各位有兴趣的fork。
软件环境:goland、navicat for mysql。
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")
}
输入对应的数据
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)
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)
}
根据提示输入要更新的内容,然后转到对应的更新语句
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)
......//以此类推
}
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数据中的一致,不然可能会造成如下错误
如对本文有疑问, 点击进行留言回复!!
VSCode1.4 搭建Golang的开发调试环境(遇到很多问题)
网友评论