go mysql 数据 json,golang查询数据返回json
在使用xorm中,有直接的方法返回map[string]string,返回map[string]interface{}时,返回的不是实际数据类型,下面的代码用于数据同步,可以返回实际的数据类型
func GetQueryColumns(rows *sql.Rows) ([]string, map[string]string, error) {
columnTypes, err := rows.ColumnTypes()
if err != nil {
return nil, nil, err
}
length := len(columnTypes)
columns := make([]string, length)
columnTypeMap := make(map[string]string, length)
for i, ct := range columnTypes {
columns[i] = ct.Name()
columnTypeMap[ct.Name()] = ct.DatabaseTypeName()
}
return columns, columnTypeMap, nil
}
func QueryForInterface(db *sql.DB, sqlInfo string, args ...interface{}) ([]map[string]interface{}, error) {
rows, err := db.Query(sqlInfo, args...)
defer rows.Close()
if err != nil {
return nil, err
}
columns, columnTypeMap, err := GetQueryColumns(rows)
if err != nil {
return nil, err
}
columnLength := len(columns)
cache := make([]interface{}, columnLength)
for index, _ := range cache {
var a interface{}
cache[index] = &a
}
var list []map[string]interface{} //返回的切片
for rows.Next() {
_ = rows.Scan(cache...)
item := make(map[string]interface{})
for i, data := range cache {
if ct, ok := columnTypeMap[columns[i]]; ok {
if (ct == "VARCHAR" || ct == "DATETIME") && *data.(*interface{}) != nil {
item[columns[i]] = string((*data.(*interface{})).([]byte))
} else {
item[columns[i]] = *data.(*interface{})
}
} else {
item[columns[i]] = *data.(*interface{})
}
}
list = append(list, item)
}
return list, nil
}
go mysql 数据 json,golang查询数据返回json相关推荐
- django mysql返回json_Django 1.8.11 查询数据库返回JSON格式数据
Django 1.8.11 查询数据库返回JSON格式数据 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 环境 Win10 Python2.7 Django 1.8.11 返回多 ...
- 小汤学编程之MySQL(二)——数据库操作、表结构操作、表数据操作、查询数据和数据类型
一.数据库操作 1.创建数据库 2.查询数据库 3.修改数据库 4.使用数据库 二.表结构操作 1.创建表 2.查询表 3.修改表 4.删除表 三.表数 ...
- php mysql 查询数据出现连接重置_php使用mysql和mysqli连接查询数据
mysqli: $code = $_POST['code']; $status = ""; $success = ""; $scookies = "& ...
- MongoDB的基本操作(创建数据库,数据表,查询数据表信息)
今天,因为有朋友想要了解MongoDB的基本操作.所以,我就写一篇关于MongoDB的文章,占个坑以后有时间研究MongoDB再正式的写MongoDB的文章.关于MongoDB的安装,可以参考一下我的 ...
- php 查询数据库返回json数据
// 设置返回json格式数据 header('content-type:application/json;charset=utf8'); //连接数据库 $link = mysql_connect( ...
- Django 查询数据库返回JSON格式数据
和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 返回多条数据 示例 import json from django.http import HttpResponse from dj ...
- mysql 查询数据 程序_MySQL 查询数据
MySQL 查询数据 MySQL 数据库使用SQL SELECT语句来查询数据. 你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据. 语法 以下为在MyS ...
- mysql 随机update_MySQL随机查询数据与随机更新数据
以下的文章主要讲述的是MySQL随机查询数据.MySQL随机更新数据的实际应用以及对MySQL随机查询数据.MySQL随机更新数据的实际应用代码的描述,以下就是文章的主要内容描述,望你会有所收获. M ...
- JavaWeb-----Ajax异步请求 json对象 服务器如何返回json数据 使用ajax完成一个案例
1. 回顾 1. servlet的生命周期: 2. filter: 过滤放行和拦截一些资源.比如:黑白名单,登录校验,编码设置等. (1)创建一个类并实现Filter接口以及重写接口的抽象方法 ...
最新文章
- (链表)反转链表Reverse List
- UOJ#370. 【UR #17】滑稽树上滑稽果 动态规划
- SSE,MSE,RMSE,R-square指标讲解
- FIR数字滤波器设计——频率抽样法
- (二)先看几个面试题
- html3d旋转发光立方体,纯css3实现的3D立体动态旋转立方体特效
- 喜欢的一些话(不断更新)
- 作为一名通信老司机,我是如何看待翼龙通信无人机救灾的?
- 如何清理电脑c盘_【电脑】第一期干货:如何正确清理C盘?
- PCL1.8.0/ Qt5.7.0开发环境配置
- 如何使用Java帮助文档
- 小程序二维码海报生成
- 【转载】堆排序算法(图解详细流程)
- 如何在固定时间自动刷新网页?
- VGA驱动实现并下板EGO1
- 神圣的QA——写给应届毕业生
- 数据可视化 数据可视化看板项目一:(1)模拟实时数据 -使用MYSQL的事件建立动态模拟数据,每秒更新一次 (1)
- oh-my-zsh的安装与基本配置
- python竞赛试题及答案_python练习题答案
- 【05】概率图表示之马尔可夫随机场