go学习笔记 - GORM json类型存储及查询

时间:2025-02-28 07:44:30
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) }