加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang封装结果集

发布时间:2020-12-16 19:14:04 所属栏目:大数据 来源:网络整理
导读:之前找过很多结果集封装都不是很好,所以自己封装了下。 strFirstToUpper 字符串首字母转化为大写 NewBeeMap 并发存取map /** * 封装结果集 */ func RowResult(rows *sql.Rows) [] interface {} { //字典类型 //构造scanArgs、values两个数组,scanArgs的每

之前找过很多结果集封装都不是很好,所以自己封装了下。

strFirstToUpper 字符串首字母转化为大写

NewBeeMap 并发存取map

/** * 封装结果集 */
func RowResult(rows *sql.Rows) []interface{} {

    //字典类型
    //构造scanArgs、values两个数组,scanArgs的每个值指向values相应值的地址
    columns,_ := rows.Columns()
    values := make([]sql.RawBytes,len(columns))
    scanArgs := make([]interface{},len(values))
    for i := range values {
        scanArgs[i] = &values[i]
    }

    var returnArrs []interface{}
    for rows.Next() {
        err := rows.Scan(scanArgs...)
        if err != nil {
            panic(err.Error())
        }
        var value string
        relativeJson := NewBeeMap()
        for i,col := range values {
            if col == nil {
                value = ""
            } else {
                value = string(col)
            }
            if relativeJson.Set(strFirstToUpper(columns[i]),value) {
                continue
            }
        }
        returnArrs = append(returnArrs,relativJson.bm)
    }
    return returnArrs
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读