1 回答

TA貢獻1852條經(jīng)驗 獲得超7個贊
您需要為自定義類型實現(xiàn)Scanner & Driver Valuer接口,然后數(shù)據(jù)庫驅(qū)動程序才能知道如何將數(shù)據(jù)存儲在數(shù)據(jù)庫中以及如何從數(shù)據(jù)庫中獲取數(shù)據(jù)。
func (data *CustomType) Value() (driver.Value, error) {
...
}
func (data *CustomType) Scan(value interface{}) error {
...
}
示例:假設(shè) UserAccess 是map[interface{}]struct{}類型。
type UserAccess map[interface{}]struct{}
func (data *UserAccess) Value() (driver.Value, error) {
return data.ConvertJSONToString(), nil
}
func (data *UserAccess) Scan(value interface{}) error {
*data = data.ConvertStringToJson(valueString)
}
這里用于將自定義數(shù)據(jù)類型值轉(zhuǎn)換為數(shù)據(jù)庫兼容類型,如 json-string ConvertStringToJson。ConvertJSONToString
- 1 回答
- 0 關(guān)注
- 210 瀏覽
添加回答
舉報