激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Golang - Golang中如何對MySQL進行操作詳解

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

2020-05-23 11:47燈風(fēng)罩戟 Golang

這篇文章主要給大家介紹了關(guān)于在Golang中如何對MySQL進行操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Golang具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

Golang官方并沒有提供數(shù)據(jù)庫驅(qū)動,但通過database/sql/driver包來提供了實現(xiàn)驅(qū)動的標(biāo)準(zhǔn)接口。可以在Github上找到很多開源的驅(qū)動。

其中g(shù)o-sql-driver/mysql是一個比較推薦的驅(qū)動,其完全支持database/sql接口。

使用這個驅(qū)動, 在項目里import進:

?
1
2
3
4
import (
 "database/sql"
 _ "github.com/go-sql-driver/mysql"
)

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

?
1
2
3
4
err = db.Ping()
if err != nil {
 // 錯誤處理
}

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

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

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

一些示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
 查詢操作
*/
stmt, err := db.Prepare("SELECT `user_name` FROM `users` WHERE `id` = ?")
defer stmt.Close()
if err != nil {
 //錯誤處理
}
var userName string
//Scan() 將結(jié)果復(fù)制到userName
err = stmt.QueryRow(1).Scan(&userName)
 
fmt.Println(userName)
 
/*
 多行結(jié)果
*/
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 {
  //錯誤處理
 }
}
?
1
2
3
4
5
6
7
8
9
/*
 插入操作
*/
stmt, err := db.Prepare("INSERT INTO `users` (`user_name`, `age`) VALUES(?, ?)")
defer stmt.Close()
if err != nil {
 //錯誤處理
}
stmt.Exec("名字",年齡)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
 事務(wù)
*/
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 {
 //錯誤處理
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對服務(wù)器之家的支持。

原文鏈接:https://studygolang.com/articles/18771

延伸 · 閱讀

精彩推薦
  • Golanggolang如何使用struct的tag屬性的詳細(xì)介紹

    golang如何使用struct的tag屬性的詳細(xì)介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細(xì)介紹,從例子說起,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網(wǎng)11352020-05-21
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • Golanggolang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉(zhuǎn)義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • GolangGolang通脈之?dāng)?shù)據(jù)類型詳情

    Golang通脈之?dāng)?shù)據(jù)類型詳情

    這篇文章主要介紹了Golang通脈之?dāng)?shù)據(jù)類型,在編程語言中標(biāo)識符就是定義的具有某種意義的詞,比如變量名、常量名、函數(shù)名等等,Go語言中標(biāo)識符允許由...

    4272021-11-24
  • GolangGolang中Bit數(shù)組的實現(xiàn)方式

    Golang中Bit數(shù)組的實現(xiàn)方式

    這篇文章主要介紹了Golang中Bit數(shù)組的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨尊11682021-06-09
  • Golanggo日志系統(tǒng)logrus顯示文件和行號的操作

    go日志系統(tǒng)logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統(tǒng)logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • Golanggolang的httpserver優(yōu)雅重啟方法詳解

    golang的httpserver優(yōu)雅重啟方法詳解

    這篇文章主要給大家介紹了關(guān)于golang的httpserver優(yōu)雅重啟的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,...

    helight2992020-05-14
主站蜘蛛池模板: 免费久久精品 | 国产精品一区二区三区在线播放 | 久久丝袜脚交足黄网站免费 | 九九热免费精品视频 | 92自拍视频| 国产欧美日韩久久久 | 精品一区二区三区毛片 | 久久久久久久99 | 在线亚洲播放 | 国产一级aaa全黄毛片 | 99re久久最新地址获取 | 黄色免费播放网站 | 美女久久 | 爱性久久久久久久 | 久久草在线视频国产 | 久久久一区二区三区视频 | 国产精品久久久乱弄 | 欧美成人免费tv在线播放 | 久久成人视屏 | 久久精品一区二区三区四区五区 | av在线免费播放 | 久久综合九色 | 欧美性生活网站 | 成人在线视频免费观看 | 成人毛片一区 | 国内精品久久久久久久久久久久 | 久久久久久久一区二区三区 | 国产高潮失禁喷水爽到抽搐视频 | 暴力强行进如hdxxx | 久久影院免费观看 | 国产精品视频不卡 | 九九黄色 | 精品一区二区三区在线观看视频 | 91av在线免费播放 | 国产中文av在线 | 美女黄色毛片免费看 | sm高h视频| 99r国产精品 | jizzjizzjizz少妇| 国产精品久久久久久久四虎电影 | 一级电影免费在线观看 |