golang数据库操作
发布时间:2020-12-16 18:16:36 所属栏目:大数据 来源:网络整理
导读:package mainimport ("database/sql"_ "github.com/go-sql-driver/mysql""fmt")func main() {//连接数据库,获得连接句柄db,err := sql.Open("mysql","root:123456@tcp(localhost:3306)/huifang5?charset=utf8")if err != nil {panic(err.Error())}defer db.
package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" "fmt" ) func main() { //连接数据库,获得连接句柄 db,err := sql.Open("mysql","root:123456@tcp(localhost:3306)/huifang5?charset=utf8") if err != nil { panic(err.Error()) } defer db.Close() //执行sql语句返回多行的结果集 result,err := db.Query("select * from hf_test where keshiid=?",0) if err != nil { panic(err.Error()) } defer result.Close() //Scan需要的容器 keys,_ := result.Columns() //字段名 values := make([][]byte,len(keys)) //字段值 scans := make([]interface{},len(keys)) //Scan时的容器 for i := range scans { scans[i] = &values[i] //对容器的处理,以便能在Scan之后收集到每个字段值 } //循环取出每一行的数据 var datas []map[string]string for result.Next() { result.Scan(scans...) data := make(map[string]string) for k,v := range values { key := keys[k] data[key] = string(v) } datas = append(datas,data) } fmt.Println(datas) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |