學習任何一門語言都要操作mysql資料庫,golang也不例外哦,今天就來講講如何整合第三方的mysql驅動,在golang裡面利用mysql的第三方驅動來運算元據庫,並將結果for迴圈遍歷出來,首先你得知道接下來的程式碼主要是幹啥的不是麼?
Go 之基礎速學 (七) golang 裡包的使用 JSON 化 struct 結構體以及 if else 的初次使用
這篇文章當中我們講過如何引入第三方包來完成json的轉化,這裡引入mysql的第三方包也是一樣的道理 開啟git工具git bash here 然後隨便哪個目錄下執行命令:go get github.com/go-sql-driver/mysql
接下來我們就看程式碼吧:
package main import ( _ "com.huxiaobai/servicesa" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/pquerna/ffjson/ffjson" ) func main(){ // _ "github.com/go-sql-driver/mysql" 要想使用mysql驅動 就必須要安裝第三方的mysql驅動 執行命令 go get github.com/go-sql-driver/mysql即可 //之所以在前邊加上_表示我們不需要使用到包裡面的東西 但是我們需要初始化包裡面的東東來使用 前邊我們講過了的 //root:root@tcp(localhost:3306)/cs?charset=utf8mb4 root使用者名稱:root密碼@tcp的連結方式表示遠端連線(localhost表示ip地址:3306埠號)/cs表示資料庫名稱?charset=utf8mb4表示字符集 //返回兩個引數 db errdb,err := sql.Open("mysql","root:root@tcp(localhost:3306)/cs?charset=utf8mb4") if err != nil{ fmt.Println("連結錯誤"+err.Error()) return } //db.query()表示執行原生sql語句 也是返回兩個值 rows結果集 error發生錯誤時候會返回 rows,error := db.Query("select gonghao,xingming from user limit 2") if error != nil{ fmt.Println("查詢錯誤"+error.Error()) return } //for迴圈 for row.Next(){} 表示迴圈讀取 Next()一行一行的讀取 rows.Next()返回bool型別 知道返回false沒有結果集了就不再進入迴圈 //for rows.Next(){ // //定義兩個引數 來接收結果集裡面欄位的值 // var gonghao string // var xingming string // //Scan()表示掃描結果集裡面的值並賦值給gonghan和xingming 但是Scan()裡面要求傳入的是引數的記憶體地址 當然是用&符號嘍 要麼你就用new() // rows.Scan(&gonghao,&xingming) // fmt.Println(gonghao,xingming) //} //上邊我們是將結果集迴圈出來賦值給了變數 現在我們將結果集取出來賦值給結構體裡面的元素 var userModel models.UserModela = models.UserModela{} for rows.Next(){ rows.Scan(&userModel.GongHao,&userModel.XingMing) fmt.Println(userModel) } //這樣就會存在一個弊端 我們上邊查出來的是兩條 但是通過結構體 我們只能是獲取到一條 因為上邊的for迴圈是在不斷的改變著結構體裡面的值 到最後只有最後一條是放到了結構體裡面去的 //即使是陣列也不行 陣列規定了長度之後就是無法改變的 所以你不確定查出來有幾條 所以你也就無法使用陣列來存放這些返回值 最好的辦法就是切片 寫一篇部落格來寫哦 fmt.Println(userModel) }
重點看程式碼裡面的註釋資訊 涉及到了mysql驅動的使用 資料查詢 for迴圈 還有Scan的解釋 還有結果集賦值給變數 以及結果集賦值給結構體裡面的元素 然後將結構體列印出來的案例
本作品採用《CC 協議》,轉載必須註明作者和本文連結