go-sql-driver/mysql中Scan結果集轉自動換成map解決方案
package main
import (
"database/sql"
"fmt"
"github.com/go-sql-driver/mysql"
"log"
"time"
)
var db *sql.DB
func initDb() {
var err error
config := mysql.Config{
User: "root",
Passwd: "",
Addr: "xxx.xxx.xxx.xxx:3306",
Net: "tcp",
DBName: "xxx",
AllowNativePasswords: true,
}
db, err = sql.Open("mysql", config.FormatDSN())
checkError(err)
// 設定最大連線數
db.SetMaxOpenConns(25)
// 設定最大空閒連線數
db.SetMaxIdleConns(25)
// 設定每個連結的過期時間
db.SetConnMaxLifetime(5 * time.Minute)
// 嘗試連線,失敗會報錯
err = db.Ping()
checkError(err)
}
func checkError(err error) {
if err != nil {
log.Fatal(err)
}
}
func Scan(list *sql.Rows) (rows []map[string]interface{}) {
fields, _ := list.Columns()
for list.Next() {
scans := make([]interface{}, len(fields))
row := make(map[string]interface{})
for i := range scans {
scans[i] = &scans[i]
}
list.Scan(scans...)
for i, v := range scans {
var value = ""
if v != nil {
value = fmt.Sprintf("%s", v)
}
row[fields[i]] = value
}
rows = append(rows, row)
}
return
}
func main() {
initDb()
list, _ := db.Query("select * from users")
defer list.Close()
rows := Scan(list)
for _, user := range rows {
fmt.Println(user["id"], user["name"], user["created_at"])
}
}
結果:
1 admin 2019-05-23 01:54:06
15 jack 2020-01-15 15:43:04
23 測試 2020-03-10 19:20:41
25 測試1 2020-03-21 17:25:42
26 demo2 2020-03-21 18:16:22
27 demo3 2020-03-21 19:08:35
28 user01 2020-03-21 22:50:53
29 user02 2020-03-21 22:52:34
30 li 2020-03-22 13:57:47
相關文章
- 【Python】轉換mysql 結果集為詞典型別PythonMySql型別
- MySQL高效分頁解決方案集(轉)MySql
- 巧用臨時表將大結果集轉換為小結果集驅動查詢薦
- Java物件轉換成MapJava物件
- MySQL高效分頁解決方案集MySql
- MySQL中如何橫向顯示結果集薦MySql
- Fotify掃描結果Open Redirection解決方案
- Hql總結 查詢結果動態組裝成List(map),List(bean),List(list),List(set)等格式(轉)Bean
- MySQL in UnionAll結果集的優化MySql優化
- 11gR2 RAC使用SCAN故障切換問題的解決方案
- MySQL字符集亂碼與解決方案MySql
- Openstack的HA解決方案【mysql叢集配置】MySql
- mysql中的多行查詢結果合併成一個MySql
- keepalived與mysql主主叢集自動切換MySql
- 評“MySQL 隱式轉換引起的執行結果錯誤”MySql
- 防止點選連結<a>有跳轉動作解決方案
- Map<String, Object>轉換成uri請求串Object
- 介面自動化測試解決方案
- mysql 插入中文亂碼解決方案 轉MySql
- MySQL EXPLAIN結果集分析 - 附帶大量案例MySqlAI
- PYTHON3 cx-Oracle 字符集 轉換錯誤的解決方案PythonOracle
- 【MySQL】order by 結果不準確的問題及解決MySql
- API介面開發(一):介面開發返回結果解決方案API
- voc資料集轉換成coco資料集
- iOS FMDB有返回結果集和無返回結果集iOS
- 將算數表示式轉換成字尾表示式並計算結果
- C#將運算字串直接轉換成表示式且計算結果C#字串
- Android自動化測試解決方案Android
- MySQL的EXPLAIN命令結果詳解MySqlAI
- 提供一站式自動駕駛資料採集標註解決方案自動駕駛
- MySQL 啟動服務報錯解決方案MySql
- Oracle 儲存過程返回結果集|轉|Oracle儲存過程
- Oracle 儲存過程返回結果集 (轉)Oracle儲存過程
- MySQL Orchestrator自動導換+VIP切換MySql
- MysqlMaster切換方案MHA的探索與測試結果MySqlAST
- 首批入選!金融信創解決方案評選結果公佈
- scan ip的手動切換
- Java中將 Map 轉換為 Spring MultiValueMapJavaSpring