package main
import (
"log"
"fmt"
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
//先把字段的值都当成字符串
func Rows2SliceMap(rows *sql.Rows) (list []map[string]string) {
//字段名称
columns, _ := rows.Columns()
//多少个字段
length := len(columns)
//每一行字段的值
values := make([]sql.RawBytes, length)
//保存的是values的内存地址
pointer := make([]interface{}, length)
//
for i := 0; i < length; i++ {
pointer[i] = &values[i]
}
//
for rows.Next() {
//把参数展开,把每一行的值存到指定的内存地址去,循环覆盖,values也就跟着被赋值了
rows.Scan(pointer...)
//每一行
row := make(map[string]string)
for i := 0; i < length; i++ {
row[columns[i]] = string(values[i])
}
list = append(list, row)
}
//
return
}
func main() {
db, err := sql.Open("mysql", "root:1234@tcp(192.168.99.165:3306)/test?charset=utf8")
if err != nil {
log.Println(err.Error())
}
err = db.Ping()
if err != nil {
log.Println(err.Error())
}
rows, _ := db.Query("select * from cms")
defer rows.Close()
list := Rows2SliceMap(rows)
for k, v := range list {
fmt.Println(k)
fmt.Println(v["id"], v["name"], v["sex"], v["age"])
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入浅出WebAssembly
于航 / 电子工业出版社 / 2018-11 / 128.00元
WebAssembly是一种新的二进制格式,它可以方便地将C/C++等静态语言的代码快速地“运行”在浏览器中,这一特性为前端密集计算场景提供了无限可能。不仅如此,通过WebAssembly技术,我们还可以将基于Unity等游戏引擎开发的大型游戏快速地移植到Web端。WebAssembly技术现在已经被计划设计成W3C的标准,众多浏览器厂商已经提供了对其MVP版本标准的支持。在Google I/O ......一起来看看 《深入浅出WebAssembly》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
UNIX 时间戳转换
UNIX 时间戳转换