golangパッケージ結果セット

2139 ワード

これまで多くの結果セットを探したが、パッケージがうまくいかなかったので、自分でパッケージした。


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
}