【问题标题】:Can I use gorilla schema with an sql.NullString?我可以将 gorilla 模式与 sql.NullString 一起使用吗?
【发布时间】:2015-01-02 23:32:06
【问题描述】:

我正在使用 gorilla 模式根据用户的表单提交来填充结构。我的结构包含sql.NullString,我目前收到以下错误:

schema: converter not found for sql.NullString

如何在要使用 gorilla 架构填充的结构中使用 sql.NullString

【问题讨论】:

    标签: sql go schema gorilla


    【解决方案1】:

    我创建了一个要点 (https://gist.github.com/carbocation/51b55297702c7d30d3ef),它展示了解决此问题的一种方法。您需要为以下四种类型分别创建一个schema.Converter:sql.NullString、sql.NullBool、sql.NullInt64 和 sql.NullFloat64。

    sql.NullString 的一个例子:

    import "database/sql"
    import "reflect"
    
    func ConvertSQLNullString(value string) reflect.Value {
        v := sql.NullString{}
        if err := v.Scan(value); err != nil {
            return reflect.Value{}
        }
    
        return reflect.ValueOf(v)
    }
    

    然后将其注册到您的*schema.Decoder(通常是一个全局包,在本例中名为d):

    import "database/sql"
    
    nullString := sql.NullString{}
    d.RegisterConverter(nullString, ConvertSQLNullString)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-03
      • 2023-03-25
      • 2020-08-04
      • 2018-10-23
      • 2011-02-22
      • 2021-03-16
      • 2016-11-20
      • 2019-01-25
      相关资源
      最近更新 更多