如何使用动态栏

时间:2018-11-29 06:22:27

标签: mysql go mariadb go-gorm

我想在mariadb中使用动态列blob数据类型,并在Go项目中使用。 当从带有gorm blob字段的数据库中获取数据为nil时,为什么?

type QrController struct {
}

func (controller *QrController) GetQrInfo(context context.Context) {
    qrCode := context.FormValue("qr")
    db, err := gorm.Open("mysql", "root:@/payro_db?charset=utf8&parseTime=True&loc=Local")
if (err != nil) {
        fmt.Println(err.Error())
        return
    }

    defer db.Close()

    var qr model.BrcQr

    if db.First(&qr, "code=?", qrCode).RecordNotFound() {

    }
      context.JSON(qr)
}

结果是

  

{“ qr_id”:0,“ code”:“”,“ type”:0,“ data”:null,“ created_at”:“ 0001-01-01T00:00:00Z”,“ created_by”:null ,“状态”:0}

但数据字段必须为“ {“ merchant_id”:1}

这是Brc_Qr结构:

package model

import (
    "api/user"
    "database/sql"
    "time"
    "github.com/guregu/null"
)

var (
    _ = time.Second
    _ = sql.LevelDefault
    _ = null.Bool{}
)

type BrcQr struct {
    QrID      int           `gorm:"column:qr_id;primary_key"    json:"qr_id"`
    Code      string        `gorm:"column:code" json:"code"`
    Type      int           `gorm:"column:type" json:"type"`
    Data      []byte        `gorm:"column:data" json:"data"`
    CreatedAt time.Time     `gorm:"column:created_at"   json:"created_at"`
    CreatedBy null.Int      `gorm:"column:created_by"   json:"created_by"`
    Status    int           `gorm:"column:status" json:"status"`
}

// TableName sets the insert table name for this struct type
func (b *BrcQr) TableName() string {
    return "brc_qr"
}

0 个答案:

没有答案