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))
}
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我只得到 name 值但图片是空的。如何将 blob 值从数据库存储到 struct ?任何答案将不胜感激!谢谢你!
我对 GO 比较陌生,在搜索类似问题的解决方案时遇到了这个问题,我找到了解决方案。
当您从数据库中获取 BLOB 数据时,您将其作为 []byte 类型获取,您的结构可能如下所示
type User struct {
Name string `json:name`
Picture []byte`json:picture`
}
Run Code Online (Sandbox Code Playgroud)
我想您可以稍后根据需要处理字节数组。就我而言,我需要一个 JSON 对象,因此我将其解组为类型 interface{} 变量。