golang使用go-sql-driver實現mysql增刪改操作

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

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

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

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

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

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


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

Pythonuser@unix(/path/to/socket)/dbnameroot:pw@unix(/tmp/mysql.sock)/myDatabase?loc=Localuser:password@tcp(localhost:5555)/dbname?tls=skip-verify&autocommit=true
1234  user@unix(/path/to/socket)/dbnameroot:pw@unix(/tmp/mysql.sock)/myDatabase?loc=Localuser:password@tcp(localhost:5555)/dbname?tls=skip-verify&autocommit=true

完整的例子!

Python//xiaorui.cc#xiaorui.ccpackage mainimport ( "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() //關閉資料庫}
12345678910111213141516171819202122232425262728293031323334353637383940  //xiaorui.cc#xiaorui.ccpackage mainimport (    "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() //關閉資料庫}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.