最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年10月28日 17:44:20   作者:鐵哥  
這篇文章主要介紹了Go程序中使用MySQL的方法,需要使用第三方包來進(jìn)行連接,需要的朋友可以參考下

go官方僅提供了database package,database package下有兩個包sql,sql/driver。這兩個包用來定義操作數(shù)據(jù)庫的接口,這就保證了無論使用哪種數(shù)據(jù)庫,他們的操作方式都是相同的。


但go官方并沒有提供連接數(shù)據(jù)庫的driver,如果要操作數(shù)據(jù)庫,還需要第三方的driver 包,幸好,主流的數(shù)據(jù)庫的driver都已經(jīng)有了:https://code.google.com/p/go-wiki/wiki/SQLDrivers

其中,mysql有兩個包,一個是mymysql,一個是go-sql-driver/mysql,兩個package都是純go實(shí)現(xiàn)。我選擇了后者,因?yàn)楹笳叩男矢咭稽c(diǎn),benchmark在這里:https://github.com/go-sql-driver/sql-benchmark
sql包的用法簡潔明了:
1、建立連接
首先是Open,

復(fù)制代碼 代碼如下:
db, err := sql.Open(“mysql”, “user:password@/dbname”)

db 是一個*sql.DB類型的指針,在后面的操作中,都要用到db
open之后,并沒有與數(shù)據(jù)庫建立實(shí)際的連接,與數(shù)據(jù)庫建立實(shí)際的連接是通過Ping方法完成。此外,db應(yīng)該在整個程序的生命周期中存在,也就是說,程序一啟動,就通過Open獲得db,直到程序結(jié)束,再Close db,而不是經(jīng)常Open/Close。
復(fù)制代碼 代碼如下:
err = db.Ping()

2、基本用法
DB的主要方法有:
Query 執(zhí)行數(shù)據(jù)庫的Query操作,例如一個Select語句,返回*Rows

QueryRow 執(zhí)行數(shù)據(jù)庫至多返回1行的Query操作,返回*Row

PrePare 準(zhǔn)備一個數(shù)據(jù)庫query操作,返回一個*Stmt,用于后續(xù)query或執(zhí)行。這個Stmt可以被多次執(zhí)行,或者并發(fā)執(zhí)行

Exec 執(zhí)行數(shù)不返回任何rows的據(jù)庫語句,例如delete操作

3、簡單實(shí)例

復(fù)制代碼 代碼如下:

package main

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

type User struct {
 id                 int
 username, password string
}

var sqldata map[interface{}]interface{}

func main() {
 var u User
 db, err := sql.Open("mysql", "root:@/test?charset=utf8")
 check(err)
 插入數(shù)據(jù)
 stmt, err := db.Prepare("INSERT user SET username=?,password=?")
 check(err)
 res, err := stmt.Exec("xiaowei", "xiaowei")
 check(err)
 id, err := res.LastInsertId()
 check(err)
 fmt.Println(id)
 //查詢數(shù)據(jù)
 rows, err := db.Query("SELECT * FROM user")
 check(err)

 fmt.Println(rows.Columns())
 userinfo := make(map[interface{}]interface{})
 for rows.Next() {
  err := rows.Scan(&u.id, &u.username, &u.password)
  check(err)
  userinfo[u.id] = u
 }
 fmt.Println(userinfo)
}

func check(err error) {
 if err != nil {
  fmt.Println(err)
 }
}


相關(guān)文章

  • Go語言中slice的用法實(shí)例分析

    Go語言中slice的用法實(shí)例分析

    這篇文章主要介紹了Go語言中slice的用法,實(shí)例分析了slice的功能及使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • GoLang jwt無感刷新與SSO單點(diǎn)登錄限制解除方法詳解

    GoLang jwt無感刷新與SSO單點(diǎn)登錄限制解除方法詳解

    這篇文章主要介紹了GoLang jwt無感刷新與SSO單點(diǎn)登錄限制解除方法,JWT是一個簽名的JSON對象,通常用作Oauth2的Bearer token,JWT包括三個用.分割的部分。本文將利用JWT進(jìn)行認(rèn)證和加密,感興趣的可以了解一下
    2023-03-03
  • golang?開啟opencv圖形化編程

    golang?開啟opencv圖形化編程

    這篇文章主要為大家介紹了golang?開啟opencv圖形化編程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 用Go語言標(biāo)準(zhǔn)庫實(shí)現(xiàn)Web服務(wù)之項(xiàng)目介紹

    用Go語言標(biāo)準(zhǔn)庫實(shí)現(xiàn)Web服務(wù)之項(xiàng)目介紹

    從本節(jié)開始將從后端到前端一步一步實(shí)現(xiàn)一個Go語言Web服務(wù),后端除了MySQL驅(qū)動,全部使用Go語言標(biāo)準(zhǔn)庫來實(shí)現(xiàn)一個小型項(xiàng)目,本篇將簡單的介紹一下項(xiàng)目開發(fā)要準(zhǔn)備的流程,感興趣的同學(xué)可以閱讀一下
    2023-05-05
  • Golang六個常用接口的使用總結(jié)

    Golang六個常用接口的使用總結(jié)

    在這篇文章中,小編來帶大家學(xué)習(xí)幾個Go標(biāo)準(zhǔn)庫的接口,看看Go標(biāo)準(zhǔn)庫是如何定義接口,以加深對Go語言接口的理解,感興趣的小伙伴快跟隨小編一起了解一下吧
    2023-07-07
  • Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀

    Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀

    這篇文章主要為大家介紹了Go channel發(fā)送方和接收方如何相互阻塞等待源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Golang實(shí)現(xiàn)短網(wǎng)址/短鏈服務(wù)的開發(fā)筆記分享

    Golang實(shí)現(xiàn)短網(wǎng)址/短鏈服務(wù)的開發(fā)筆記分享

    這篇文章主要為大家詳細(xì)介紹了如何使用Golang實(shí)現(xiàn)短網(wǎng)址/短鏈服務(wù),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-05-05
  • Go語言生成UUID的利器(github.com/google/uuid)

    Go語言生成UUID的利器(github.com/google/uuid)

    UUID是確保每個元素唯一性的重要工具,Go語言雖然在標(biāo)準(zhǔn)庫中沒有直接提供UUID生成功能,但可以通過安裝github.com/google/uuid庫來實(shí)現(xiàn),本文就來介紹一下,感興趣的可以了解一下
    2024-11-11
  • Golang實(shí)現(xiàn)可重入鎖的示例代碼

    Golang實(shí)現(xiàn)可重入鎖的示例代碼

    可重入鎖指的是同一個線程外層函數(shù)獲得鎖之后,內(nèi)層遞歸函數(shù)仍然能獲取該鎖的代碼,在同一個線程在外層方法獲取鎖的時候,在進(jìn)入內(nèi)層方法會自動獲取鎖。本文將用Golang實(shí)現(xiàn)可重入鎖,需要的可以參考一下
    2022-05-05
  • Go gorilla/sessions庫安裝使用

    Go gorilla/sessions庫安裝使用

    這篇文章主要為大家介紹了Go gorilla/sessions庫安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評論

神农架林区| 日照市| 钟祥市| 瓦房店市| 云和县| 河北区| 泸定县| 高淳县| 新闻| 永年县| 太康县| 响水县| 阿克陶县| 莎车县| 漠河县| 利津县| 礼泉县| 尉犁县| 凉山| 淄博市| 八宿县| 扎赉特旗| 新疆| 临安市| 台州市| 潜江市| 卢氏县| 全南县| 忻州市| 阿拉善盟| 沙河市| 都江堰市| 托克逊县| 文成县| 且末县| 韶关市| 泸溪县| 望都县| 阳朔县| 富锦市| 瓮安县|