Go操作MySql資料庫

2021-09-30 01:52:31 字數 3595 閱讀 7873

使用go操作mysql等資料庫,一般有兩種方式:一是使用database/sql介面,直接在**裡硬編碼sql語句;二是使用gorm,即物件關係對映的方式在**裡抽象的運算元據庫。一般推薦使用第二種方式。

go沒有內建的驅動支援任何資料庫,但是go定義了database/sql介面,使用者可以基於驅動介面開發相應資料庫的驅動。但缺點是,直接用 github.com/go-sql-driver/mysql 訪問資料庫都是直接寫 sql,取出結果然後自己拼成物件,使用上面不是很方便,可讀性也不好。

go get github.com/go-sql-driver/mysql
安裝好 mysql 驅動之後,我們建立一張user表,並執行crud操作(增、刪、改、查)。**如下所示:

)//資料庫連線資訊

const

( username =

"root"

password =

"123456"

network =

"tcp"

server =

"127.0.0.1"

port =

3306

database =

"test"

)//user表結構體定義

type user struct

func

main()

db.setconnmaxlifetime

(100

*time.second)

//最大連線週期,超時的連線就close

db.setmaxopenconns

(100

)//設定最大連線數

createtable

(db)

insertdata

(db)

queryone

(db)

querymulti

(db)

updatedata

(db)

deletedata

(db)

}func

createtable

(db *sql.db)

fmt.

println

("create table successd")}

//插入資料

func

insertdata

(db *sql.db)

lastinsertid,err := result.

lastinsertid()

//獲取插入資料的自增id

if err !=

nil fmt.

println

("insert data id:"

, lastinsertid)

rowsaffected,err := result.

rowsaffected()

//通過rowsaffected獲取受影響的行數

if err !=

nil fmt.

println

("affected rows:"

, rowsaffected)

}//查詢單行

func

queryone

(db *sql.db)

fmt.

println

("single row data:"

,*user)

}//查詢多行

func

querymulti

(db *sql.db)}(

)if err !=

nilfor rows.

next()

fmt.

println

("scan successd:"

,*user)}}

//更新資料

func

updatedata

(db *sql.db)

fmt.

println

("update data successd:"

, result)

rowsaffected,err := result.

rowsaffected()

if err !=

nil fmt.

println

("affected rows:"

, rowsaffected)

}//刪除資料

go get github.com/gin-gonic/gin使用go的gin框架和gorm開發簡單的crud api,**如下

)//自動建表

fmt.

println

("create table success")}

defer mysqldb.

close()

router()

}func

router()

//每個路由都對應乙個具體的函式操作,從而實現了對user的增,刪,改,查操作

func

initpage

(c *gin.context))}

func

createuser

(c *gin.context)

func

updateuser

(c *gin.context)

else

}func

listuser

(c *gin.context)

func

getuser

(c *gin.context)

else

}func

deleteuser

(c *gin.context)

)}

go操作mysql資料庫

var db sql.db 資料庫 控制代碼 var errorg error 全域性變數 func init 功能 查詢 引數 tablename 表名 cond 選擇條件 items 選擇的欄位名 返回值 未定 ex select id,name from flask sx test.stu t...

Go 語言操作 MySQL 資料庫

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

Go語言操作MySQL資料庫

重置密碼 alter user root localhost identified by 111 安裝外掛程式 開機啟動 systemctl enable mariadb 自啟動 systemctl disable mariadb 關閉自啟動 資料庫的開啟和關閉 systemctl status m...