go学习笔记 - GORM json类型存储及查询
package main
import (
"database/sql/driver"
"encoding/json"
"fmt"
"/driver/mysql"
"/gorm"
)
type communityIds []string
type Demo struct {
Id uint64
Icon communityIds `gorm:"type:json"`
}
func (c communityIds) Value() (driver.Value, error) {
b, err := json.Marshal(c)
return string(b), err
}
func (c *communityIds) Scan(src any) error {
return json.Unmarshal(src.([]byte), c)
}
func main() {
s := []string{"123123", "1231231"}
medium := communityIds(s)
fmt.Println(medium)
dsn := "root:@tcp(127.0.0.1:3306)/study?charset=utf8mb4&parseTime=True&loc=Local"
db, _ := gorm.Open(mysql.Open(dsn), &gorm.Config{})
demo := Demo{
Icon: communityIds{"123123", "234566"},
}
db.Table("demo").Create(&demo)
var item []Demo
db.Table("demo").Find(&item)
fmt.Println(item)
}