golang 读取SQL数据库数组json值和存储数组json内容至SQL字段

golang 读取SQL数据库数组json值和存储数组json内容至SQL字段

golang 读取SQL数据库json值和存储json内容至SQL字段

存储:

strJson, _ := json.Marshal(jsText) //结构体内容 转json文本
    sql := `UPDATE "book"  SET "strJson"='` + string(strJson) + `'  WHERE "id"='0' ` //sql语句
    err := PgDB.QueryRow(sql) //执行存储

读取:

type Explain struct {
        Parts      string `json:"parts"`
        Title      string `json:"title"`
        ArrLabel   string `json:"arrLabel" `
        Text       string `json:"text" `
        ArrContent string `json:"arrContent" `
    }

    var strbyte []byte //接收json 字段内容
    sql := `SELECT "name" FROM "book"."name"  WHERE "id"='0' `
    err := PgDB.QueryRow(sql).Scan(&strbyte)
    if err != nil {
        log.Println("SQL异常:", err)
    }
    var jsons Explain //结构体
    json.Unmarshal([]byte(strbyte), &jsons) //转序列号
    fmt.Println(jsons) //打印结果

各类型存储:

var text string
    var ints int
    var int64s int64
    var floats float64
    var arrstr []string   //文本数组
    var arrint [][]int    //整形数组
    var objarr []struct { //对象数组
        a2 string
        b2 []string
    }
    var obj struct { //对象  注意SQL数据库中不能数组模式 只能json模式
        a1 string
        b1 []string
    }
    objjson, _ := json.Marshal(obj) //结构体内容 转json文本,

    /* SQL语句 */
    sql := `INSERT INTO "book"("text","ints","int64s","float64","floats","arrstr","arrint","obj","objarr")`
    sql += `VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9) RETURNING "id"` //$符合作为转换标识

    DB.QueryRow(sql, text, ints, int64s, floats,
        pq.Array(arrstr), pq.Array(arrint), pq.Array(objarr), string(objjson),
    ).Scan(&sql) // 查询单个数据/插入单个数据必须加Scan 接收返回id
    
//需要运行终端载入 go get github.com/lib/pq
752 Views
分享你的喜爱
linwute
linwute

我要像梦一样自由,像大地一样宽容;
在艰辛放逐的路上,点亮生命的光芒;
我要像梦一样自由,像天空一样坚强;
在曲折蜿蜒的路上,体验生命的意义;

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注