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是列的值。