91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang中如何對MySQL進行操作詳解

發布時間:2020-08-23 17:45:08 來源:腳本之家 閱讀:201 作者:燈風罩戟 欄目:編程語言

前言

Golang官方并沒有提供數據庫驅動,但通過database/sql/driver包來提供了實現驅動的標準接口。可以在Github上找到很多開源的驅動。

其中go-sql-driver/mysql是一個比較推薦的驅動,其完全支持database/sql接口。

使用這個驅動, 在項目里import進:

import (
 "database/sql"
 _ "github.com/go-sql-driver/mysql"
)

在正式使用database/sql包之前,首先得明白sql.DB并不代表一個數據庫連接,它并不會與數據庫建立任何連接,也不會驗證參數的合法性,要想知道DSN的合法性,需使用sql.DB實例(比如db)db.Ping() 方法, 如下:

err = db.Ping()
if err != nil {
 // 錯誤處理
}

使用sql.Open()方法即可獲得一個sql.DB實例。需要注意的是,sql.DB的設計就是用來作為長連接使用的,不應該在項目里頻繁的進行Open()與Close(),提倡的做法是聲明一個全局的sql.DB實例, 將其復用起來。即只Open()一次,使用直到程序結束任務。

拿到sql.DB實例之后,就可以對數據庫進行操作了。

在操作數據庫時,推薦做法是使用db.Prepare()對SQL語句進行預編譯,這樣具有較高的安全性,可在一定程度上避免諸如SQL注入這樣的攻擊手段。

一些示例:

/*
 查詢操作
*/
stmt, err := db.Prepare("SELECT `user_name` FROM `users` WHERE `id` = ?")
defer stmt.Close()
if err != nil {
 //錯誤處理
}
var userName string
//Scan() 將結果復制到userName
err = stmt.QueryRow(1).Scan(&userName)

fmt.Println(userName)

/*
 多行結果
*/
stmt, err := db.Prepare("SELECT `user_name` FROM `users` WHERE `age` = ?")
defer stmt.Close()
if err != nil {
 //錯誤處理
}

rows, err := stmt.Query(年齡)
if err != nil {
 //錯誤處理
}

for rows.Next() {
 var userName string
 if err := rows.Scan(&userName); err != nil {
  //錯誤處理
 }
}
/*
 插入操作
*/
stmt, err := db.Prepare("INSERT INTO `users` (`user_name`, `age`) VALUES(?, ?)")
defer stmt.Close()
if err != nil {
 //錯誤處理
}
stmt.Exec("名字",年齡)
/*
 事務
*/
tx, err := db.Begin()
if err != nil {
 //錯誤處理
}
defer tx.Rollback()

stmt, err := db.Prepare("")
defer stmt.Close()
if err != nil {
 //錯誤處理
}

stmt.Exec()
err = tx.Commit()
if err != nil {
 //錯誤處理
}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乌鲁木齐县| 法库县| 裕民县| 安宁市| 资溪县| 内江市| 亚东县| 东光县| 德格县| 黎平县| 大悟县| 宜昌市| 石家庄市| 陆河县| 广丰县| 沙湾县| 甘德县| 新兴县| 彩票| 陆川县| 米泉市| 南澳县| 吴旗县| 芦溪县| 宜都市| 南丹县| 吉隆县| 丰台区| 十堰市| 班玛县| 鹤岗市| 井冈山市| 丹棱县| 类乌齐县| 海南省| 浦县| 赣榆县| 太谷县| 弥勒县| 合江县| 桓台县|