本文介绍了go语言如何把mysql查询的数据保存到结构体或者map啊?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
github.com/go-sql-driver/mysqltype data struct {
id int
name string
weight int
}
rows, _ := db.Query("select * from test where id = ?", 2)
for rows.Next() {
line := data{}
err = rows.Scan(&line)
log.Println(line)
}运行结果
2017/07/17 13:37:50 {0 0}存到map的代码
rows, _ := db.Query("select * from test where id = ?", 2)
columns, _ := rows.Columns()
length := len(columns)
for rows.Next() {
value := make([]interface{}, length)
columnPointers := make([]interface{}, length)
for i:=0;i<length;i++ {
columnPointers[i] = &value[i]
}
rows.Scan(columnPointers...)
data := make(map[string]interface{})
for i:=0;i<length;i++ {
columnName := columns[i]
columnValue := columnPointers[i].(*interface{})
data[columnName] = *columnValue
}
log.Print(data)
}有效果,但是看不懂为何要这样写
解决方案
err
scanrows.Scan(&line.id, &line.name, &line.weight)PS: 不想用ORM的话,你可以用 https://github.com/jmoiron/sqlx 这个包来简化一些操作。
这篇关于go语言如何把mysql查询的数据保存到结构体或者map啊?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!