在使用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 { <