天天看點

go安裝mysql驅動報錯_golang使用go-sql-driver實作mysql增删改操作

這兩天用golang  寫的服務端做的都是和redis做互動,因為後期還會用mysql的一個表做驗證。  先學習下golang對mysql的操作  !

mymysql和go-mysql-driver是兩個現在都很流行的go的mysql驅動,看了下文檔,後者比較的健全,聽大牛們介紹,貌似go-mysql-driver更加的健全。

安裝配置還是那麼簡單,直接go get就可以了

go get github.com/go-sql-driver/mysql

好了,咱們就開始用go-sql-driver增删改查

先用go-sql-driver連結mysql !!!

一看就懂了,帳号:密碼@模式           資料庫,以及附帶的參數

[email protected](/path/to/socket)/dbname

root:[email protected](/tmp/mysql.sock)/myDatabase?loc=Local

user:passwor[email protected](localhost:5555)/dbname?tls=skip-verify&autocommit=true

完整的例子!

//xiaorui.cc

#xiaorui.cc

package main

import (

"database/sql" //這包一定要引用,是底層的sql驅動

"fmt"

_ "github.com/go-sql-driver/mysql"

"strconv" //這個是為了把int轉換為string

)

func main() {  //main函數

db, err := sql.Open("mysql", "root:@tcp(localhost:3306)/dbname?charset=utf8")

//資料庫連接配接字元串,别告訴我看不懂。端口一定要寫/

if err != nil {  //連接配接成功 err一定是nil否則就是報錯

panic(err.Error()) //抛出異常

fmt.Println(err.Error())//僅僅是顯示異常

}

defer db.Close()  //隻有在前面用了 panic 這時defer才能起作用,如果連結資料的時候出問題,他會往err寫資料

rows, err := db.Query("select id,lvs from xiaorui")

//判斷err是否有錯誤的資料,有err資料就顯示panic的資料

if err != nil {

panic(err.Error())

fmt.Println(err.Error())

return

}

defer rows.Close()

var id int  //定義一個id 變量

var lvs string //定義lvs 變量

for rows.Next() { //開始循環

rerr := rows.Scan(&id, &lvs)  //資料指針,會把得到的資料,往剛才id 和 lvs引入

if rerr == nil {

fmt.Println("id号是",strconv.Itoa(id) + "     lvs lvs是"+ lvs) //輸出來而已,看看

}

}

insert_sql := "INSERT INTO xiaorui(lvs) VALUES(?)"

_, e4 := db.Exec(insert_sql,"nima")

fmt.Println(e4)

db.Close() //關閉資料庫

}

wKioL1MxLCWy7L-qAAIYdscA1JM573.jpg

©著作權歸作者所有:來自51CTO部落格作者rfyiamcool的原創作品,謝絕轉載,否則将追究法律責任

go go-sql-drivergo mysqlgo 資料庫Golang