最近在作注册登陆服务时,学习用Go语言操做MySQL数据库实现用户数据的增删改查,现将我的学习心得总结以下,另外附有代码仓库地址,欢迎各位有兴趣的fork。mysql
软件环境:Goland、Navicat for MySQL。git
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") }
输入对应的数据github
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) }
根据提示输入要更新的内容,而后转到对应的更新语句sql
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数据中的一致,否则可能会形成以下错误数据库