[Golang]数据库查询结果转字典

编程的时候经常需要查询数据库,但是由于查询的内容不一样,写的时候经常需要针对性的重写读取数据的部分,十分的麻烦,不过好在可以通过将其转换成字典,直接通过操作字典来读取数据,十分的方便,下面是实现方法

func sqlquery(SQL string) []map[string]string {
	//数据库初始化
	db, err := sql.Open("mysql", "root:123456789@tcp(127.0.0.1:3306)/apisrv")
	//数据库打不开就报错
	if err != nil {
		fmt.Println(err)
		panic(err)
	}
	rows, err := db.Query(SQL)
	if err != nil {
		fmt.Println(err)
		panic(err)
	}
	var result []map[string]string
	for rows.Next() {
		columns, _ := rows.Columns()

		scanArgs := make([]interface{}, len(columns))
		values := make([]interface{}, len(columns))

		for i := range values {
			scanArgs[i] = &values[i]
		}

		//将数据保存到 record 字典
		err = rows.Scan(scanArgs...)
		record := make(map[string]string)
		for i, col := range values {
			if col != nil {
				record[columns[i]] = string(col.([]byte))
			}
		}
		result = append(result, record)
	}
	rows.Close()
	return result
}

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注