使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM