色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go將mysql查詢結果保存到map

傅智翔2年前10瀏覽0評論

Go語言是一門高效、可靠的編程語言。在開發過程中,經常需要將數據庫中的查詢結果保存到map中以供后續使用。下面我們來具體介紹如何使用Go將MySQL查詢結果保存到map中。

// 導入MySQL驅動
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
// 建立連接
func ConnectDB() (*sql.DB, error) {
db, err := sql.Open("mysql", "用戶名:密碼@tcp(IP:端口)/數據庫名")
if err != nil {
return nil, err
}
return db, nil
}
// 查詢并保存到map中
func QueryToMap(sql string) (map[string]string, error) {
db, err := ConnectDB()
if err != nil {
return nil, err
}
defer db.Close()
rows, err := db.Query(sql)
if err != nil {
return nil, err
}
defer rows.Close()
columns, err := rows.Columns()
if err != nil {
return nil, err
}
result := make(map[string]string)
values := make([]sql.RawBytes, len(columns))
scanArgs := make([]interface{}, len(values))
for i := range values {
scanArgs[i] = &values[i]
}
for rows.Next() {
err = rows.Scan(scanArgs...)
if err != nil {
return nil, err
}
for i, col := range values {
if col == nil {
result[columns[i]] = ""
} else {
result[columns[i]] = string(col)
}
}
}
return result, nil
}

以上代碼實現的功能是連接到MySQL數據庫,并將查詢結果保存到map中。我們可以通過調用QueryToMap函數來使用它。例如:

result, err := QueryToMap("SELECT * FROM userinfo")
if err == nil {
for k, v := range result {
fmt.Printf("key: %s, value: %s\n", k, v)
}
}

以上代碼將所有的用戶信息查詢出來,并將結果保存到map中。通過遍歷map就可以獲取查詢結果了。值得注意的是,map中的key是列名,value是列的值。