从sql数据库Golang获取blob

时间:2017-05-11 16:48:44

标签: go

 import (
       "database/sql"
       "encoding/json"
       "fmt"

       _ "github.com/go-sql-driver/mysql"
   ) 
   type User struct {
       Name string  `json:name`
       Picture []uint8 `json:picture`
    }
    func main(){
       //straight to the query
       rows, err := 'SELECT name, picture FROM ms_users' // picture is longblob type in database
       checkErr(err)

       var usr User
       for rows.Next(){
          err = rows.Scan(&usr.Name, &usr.Picture)
          checkErr(err)
       }
       jsn, err := json.Marshal(usr)
       fmt.Printf("%v, "string(jsn))
    }

使用上面的代码,我只获取名称值,但图片为空。 如何将数据库中的blob值存储到struct? 任何答案将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

我是GO语言的新手,在寻找解决方案的同时我遇到了这个问题,我能够找到解决方案。

当从数据库中获取BLOB数据时,将其作为[] byte类型来获取,其结构如下所示

type User struct {
   Name string  `json:name`
   Picture []byte`json:picture`
}

我想您可以根据需要稍后处理字节数组。就我而言,我需要一个JSON对象,因此我将其解组为类型interface {}变量。