Go語言操作MySQL

2021-09-18 06:55:43 字數 2216 閱讀 6814

go語言安裝mysql資料庫驅動步驟

安裝驅動:go get github.com/go-sql-driver/mysql檢測安裝是否成功:sudo find ./ -name "go-sql-driver"進入mysql目錄。ls -l | wc -l一共32個檔案

匯入mysql資料庫驅動

import (

)

測試連線資料庫

匯入驅動

準備資訊,開啟連線,返回乙個結構體指標*db。但是這個指標暫時無效

使用db.ping()函式成功時,*db指標可用。

package main

import (

"fmt"

)func main()

err = db.ping()

if err != nil

fmt.println("連線成功!")

}

插入

單行插入

準備sql語句

result, err := db.exec()執行sql語句,result本質是inte***ce

result.rowaffected()獲取sql語句影響的行數

多行插入

準備sql語句

result, err := db.exec()執行sql語句,result本質是inte***ce

result.rowaffected()獲取sql語句影響的行數

例如:

sql := "insert into b1 values(103),(104),(105)"

r, err := db.exec(sql)

if err != nil

n, err := r.rowsaffected()

if err != nil

fmt.println("insert into ok!", n, "row affected.")

預處理插入

準備插入資料庫的資料

準備帶佔位符的sql語句

預處理stmt, err := db.prepare(sql)傳參執行stmt.exec()

stmt, err := db.prepare("insert into stu values(?,?)")

if err != nil

for _, s := range str

查詢

單行查詢

準備查詢的sql語句

執行單行sql語句

按表的字段數,定義變數

使用scan()獲取變數值

多行查詢

準備查詢的sql語句

執行多行sql語句

按表的字段數,定義變數

使用rows.next()和for搭配,判斷游標是否指向一條記錄

使用scan()獲取變數值

sql := "select * from b1 where id>1"

//查詢

rows, err := db.query(sql)

if err != nil

var id int

for rows.next()

預處理查詢

準備帶有佔位符查詢的sql語句

db.prepare(sql)預處理sql語句得到stmt

使用stmt.query()使用預處理呼叫查詢,同時給佔位符傳參

使用rows.next()和for搭配,判斷游標是否指向一條記錄

使用scan()獲取變數值

sql := "select * from b1 where id>?;"

//預處理sql

stmt, err := db.prepare(sql)

//預處理查詢

rows, err := stmt.query(3)

if err != nil

var id int

for rows.next()

Go 語言試用 mysql 操作

周海漢 文 2013.8.30 官網 wget 解壓後會生成go目錄 andy s1 test cat hello.go package mainimport fmt func main andy s1 test go build hello.go hello.go 3 8 cannot find ...

Go 語言操作 MySQL 之 CURD 操作

mysql 是目前開發中最常見的關係型資料庫,使用 go 語言進行操控資料庫需要使用 go 自帶database sql和驅動go sql driver mysql來實現,建立好 go 專案,需要引用驅動依賴 go get u github.com go sql driver mysql使用 mys...

Go 語言操作 MySQL 資料庫

完整 如下,其中需要一些函式,理解記住就好。time 2019 11 6 下午 3 04 插入資料 func insertinfo db sql.db 將資訊寫入資料庫 result,execerr stmt.exec female 18 if execerr nil 返回值 id 為,上面的操作,...