Go語言中使用MySql資料庫

2021-09-07 04:08:55 字數 1893 閱讀 2161

go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database/sql標準,而有些是採用了自己的實現介面,常用的有如下幾種:

接下來的幾個小節裡面我們都將採用同乙個資料庫表結構:資料庫test,使用者表userinfo,關聯使用者資訊表userdetail。

create

table

`userinfo` (

`uid`

int(10) not

null

auto_increment,

`username`

varchar(64) null

default

null

, `departname`

varchar(64) null

default

null

, `created` date

null

default

null

,

primary

key(`uid`)

)create

table

`userdetail` (

`uid`

int(10) not

null

default'0

',`intro`

text

null

, `profile`

text

null

,

primary

key(`uid`)

)

如下示例將示範如何使用database/sql介面對資料庫表進行增刪改查操作

//刪除資料

stmt, err = db.prepare("delete from userinfo where uid=?")

checkerr(err)

res, err =stmt.exec(id)

checkerr(err)

affect, err =res.rowsaffected()

checkerr(err)

fmt.println(affect)

db.close()

}func checkerr(err error)

}

通過上面的**我們可以看出,go操作mysql資料庫是很方便的。

關鍵的幾個函式我解釋一下:

sql.open()函式用來開啟乙個註冊過的資料庫驅動,go-mysql-driver中註冊了mysql這個資料庫驅動,第二個引數是dns(data source name),它是go-mysql-driver定義的一些資料庫鏈結和配置資訊。它支援如下格式:

user@unix(/path/to/socket)/dbname?charset=utf8

user:password@tcp(localhost:5555)/dbname?charset=utf8

user:password@/dbname

user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname

db.prepare()函式用來返回準備要執行的sql操作,然後返回準備完畢的執行狀態。

db.query()函式用來直接執行sql返回rows結果。

stmt.exec()函式用來執行stmt準備好的sql語句

我們可以看到我們傳入的引數都是=?對應的資料,這樣做的方式可以一定程度上防止sql注入。

Go語言中使用MySql資料庫

go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database sql標準,而有些是採用了自己的實現介面,常用的有如下幾種 接下來的幾個小節裡面我們都將採用同乙個資料庫表結構 資料庫test,使用者表userinfo,關聯使用者資訊表userdetail。create table us...

Go語言中使用SQLite資料庫

go支援sqlite的驅動也比較多,但是好多都是不支援database sql介面的 目前支援database sql的sqlite資料庫驅動只有第乙個,我目前也是採用它來開發專案的。採用標準介面有利於以後出現更好的驅動的時候做遷移。示例的資料庫表結構如下所示,相應的建表sql create tab...

Go中使用MYSQL資料庫《插入》

安裝mysql驅動 go get github.com go sql driver mysql安裝sqlx驅動 go get github.com jmoiron sqlx第一種 package main 與資料庫建立連線 var db sql.db func init else func main...