簡單講解Go程式中使用MySQL的方法

2022-09-29 13:51:15 字數 1276 閱讀 7019

go官方僅提供了database package,database package下有兩個包sql,sql/driver。這兩個包用來定義運算元據庫的介面,這就保證了無論使用哪種資料庫,他們的操作方式都是相同的。

但go官方並沒有提供連線資料庫的driver,如果要運算元據庫,還需要第三方的driver 包,幸好,主流的資料庫的driver都已經有了:

其中,mysql有兩個包,乙個是mymysql,乙個是go-sql-driver/mysql,兩個package都是純go實現。我選擇了後者,因為後者的效率更高一點,benchmark在這裡:

sql包的用法簡潔明瞭:

1、建立連線

首先是open,

複製** **如下:

db, err := sql.open(「mysql」, 「user:password@/dbname」)

db 是乙個*sql.db型別的指標,在後面的操作中,都要用到db

open之後,並沒有與資料庫建立實際的連線,與資料庫建立實際的連線是通過ping方法完成。此外,db應該在整個程式的生命週期中存在,也就是說,程式一啟動,就通過open獲得db,直到程式結束,再close db,而不是經常open/close。

複製** **如下:

err = db.ping()

2、基本用法

db的主要方法有:

query 執行資料庫的query操作,nxjzvwoah例如乙個select語句,返回*rows

queryrow 執行資料庫至多返回1行的query操作,返回*row

prepare 準備乙個資料庫query操作,返回乙個*stmt,用於後續query或執行。這個stmt可以被多次執行,或者併發執行

exec 執行數不返回任何rows的據庫語句,例如delete操作

3、簡單例項

複製** **如下:

本文標題: 簡單講解go程式中使用mysql的方法

本文位址:

在go中使用leveldb levi

當前版本的leveldb沒有帶安裝指令碼,需自行編譯安裝,過程如下 不知道為什麼,如果把leveldb的相關檔案放在 usr local對應的檔案下,安裝levigo怎麼也通不過,求路過大俠指點迷津。執行,會跑出如下錯誤 env posix.cc text 0x1e undefined refere...

python3在flask中使用mysql報錯

今天在python3 flask中使用mysql 無論怎麼弄都報錯 importerror no module named mysqldb 按照 stack overflow 上 說pip install mysqlclient或者pip install mysql python 結果都安裝不上,最...

Go語言中使用JSON

encode 將乙個物件編碼成json資料,接受乙個inte ce 物件,返回byte和error func marshal v inte ce byte,error marshal函式將會遞迴遍歷整個物件,依次按成員型別對這個物件進行編碼,型別轉換規則如下 bool型別 轉換為json的boole...