溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Golang中怎么使用MySQL

發(fā)布時(shí)間:2021-07-20 15:57:22 來源:億速云 閱讀:134 作者:Leah 欄目:編程語言

Golang中怎么使用MySQL,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

1、建立連接
首先是Open,

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

db, err := sql.Open(“mysql”, “user:password@/dbname”)


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

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

err = db.Ping()

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

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

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

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

3、簡(jiǎn)單實(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)于Golang中怎么使用MySQL問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI