最近在作註冊登陸服務時,學習用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數據中的一致,否則可能會形成以下錯誤數據庫