第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

golang reflect for sql scan 報(bào)錯(cuò)

golang reflect for sql scan 報(bào)錯(cuò)

Go
浮云間 2021-11-29 19:10:59
/**-- name is character varying(64)CREATE TABLE users(  id bigint NOT NULL,  no character(24),  identity name,  name name,  head character varying(256),  email character varying(256),  site character varying(256),  create_time timestamp without time zone,  city_id bigint,  timezone jsonb,  update_time timestamp without time zone,  CONSTRAINT user__pk PRIMARY KEY (id))spottly=# SELECT "id", "no", "identity", "name", "head", "email", "site", "create_time", "city_id", "update_time", "timezone" FROM "users" WHERE "email" = 'fixopen@yeah.net' LIMIT 1 OFFSET 0;       id       | no | identity |  name   |                  head                  |      email       |            site            | create_time | city_id | update_time | timezone----------------+----+----------+---------+----------------------------------------+------------------+----------------------------+-------------+---------+-------------+---------- 95083655397376 |    | fixopen  | fixopen | /uploader/52e2762edf4e633666000867.png | fixopen@yeah.net | http://spottly.com/fixopen |             |         |             |(1 row)*/package mainimport (    "database/sql"    //"errors"    "fmt"    _ "github.com/lib/pq"    "log"    "net/url"    "reflect"    "strings"    "time")type User struct {    Id          uint64    `json:"id"`    No          *string   `json:"no"`    Identity    string    `json:"identity"`    Name        string    `json:"name"`    Head        url.URL   `json:"head"`    Email       *string   `json:"email"`    Site        url.URL   `json:"site"`    Create_time time.Time `json:"create-time"`    City_id     *uint64   `json:"city-id"`    Update_time time.Time `json:"update-time"`    Timezone    *string   `json:"timezone"`}func main() {    connectionString := "host=localhost port=5432 user=postgres dbname=spottly password=123456 sslmode=disable"    db, err := sql.Open("postgres", connectionString)    defer db.Close()    if err != nil {        log.Fatal(err)    }
查看完整描述

1 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

url.URL沒(méi)有實(shí)現(xiàn)sql.Scanner,所以它不能從數(shù)據(jù)庫(kù)掃描。您可以制作一個(gè)確實(shí)實(shí)現(xiàn)的包裝器類型sql.Scanner:


type sqlURL struct { url.URL }

func (su *sqlURL) Scan(v interface{}) error {

    u, err := url.Parse(string(v.([]byte)))

    if err != nil {

        return err

    }

    *su = sqlURL{*u}

    return nil

}

或者將URL單獨(dú)掃描成字符串然后解析:


var urlStr string

err = db.QueryRow(command).Scan(/* ... */, &urlStr)

// check err

u, err := url.Parse(urlStr)

// check err

user.Site = *u


查看完整回答
反對(duì) 回復(fù) 2021-11-29
  • 1 回答
  • 0 關(guān)注
  • 193 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)