sql - 我可以将 gorilla 模式与 sql.NullString 一起使用吗?

标签 sql go schema gorilla

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

架构:找不到 sql.NullString 转换器

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

最佳答案

我创建了一个要点 ( 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)

关于sql - 我可以将 gorilla 模式与 sql.NullString 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27744493/

相关文章:

php - 使用 PHP 将数据输入 MySQL 数据库时遇到问题

php - 得到减去当前 Y-m 后的月数

php - CakePHP - SQL 查询连接

go - 锁定文件以更新一段数据或所有文件内容

SQL Schema 允许用户向各种表添加注释

html - Schema.org - 隐藏元素的数据

sql - 为什么我的 As400 无法从新创建的成员别名中进行选择?

google-app-engine - 本地部署工作时远程 appengine-go 静态文件出现 404 错误

unix - 是否可以使用 Go 通过 Unix 域套接字发送和接收文件描述符?

ruby-on-rails - 如何定义 Rails 模型设置的架构?