Go Scanner仍然返回<nil>

时间:2019-08-26 21:47:51

标签: go gorp

首先:我完全是golang的新手,所以我可能不太了解。 我的任务是使用“ gorp”从一个数据库编写Go数据提取器。问题在于一个表,该表具有自定义字段“ TimeRange”。 定义为:

type TimeRange struct {
    From string
    To  string
}

可悲的是,当我尝试获取行时,出现扫描仪错误,因此我意识到我需要自定义扫描仪。

// Scan - Implement the database/sql scanner interface
func (tr *TimeRange) Scan(value interface{}) error {
    tr.From = "mis"
    tr.To = "lala"
    fmt.Printf("%v\n", *tr)

    return nil
}

所以我希望在返回的字符串中看到固定的'{mis lala}'。 为什么我得到:

var q2 []models.Dashboard
result, err := dbmap.Select(&q2, "select * from dashboard where id=3")
fmt.Printf("q2=%v\n", q2)

打印:

p2=[{{<nil> Tomek b1f6f0ba-f618-00d6-6d24-8410a9219c95}}]

是: TimeRange,用户名和UUID

可能很重要:使用“ gorp”进行数据库管理

1 个答案:

答案 0 :(得分:0)

在将传递的值类型传递给dbmap.Select()时将调用扫描函数,因此,在您的情况下,您需要将Dashboard实现为scanner