MySQL 的位元類型:與Go 的自訂Bool 完美匹配
問題:
問題:在資料庫表中對於bit(1) 類型列,如何使用Beego 將其對應到Go 類型ORM?
答案:由於 Go 沒有內建的 bit(1) 類型,因此建議的方法是建立自訂 bool 類型。
type BitBool bool // Value converts BitBool to a bitfield (BIT(1)) for MySQL storage. func (b BitBool) Value() (driver.Value, error) { if b { return []byte{1}, nil } else { return []byte{0}, nil } } // Scan converts the incoming bitfield from MySQL into a BitBool. func (b *BitBool) Scan(src interface{}) error { v, ok := src.([]byte) if !ok { return errors.New("bad []byte type assertion") } *b = v[0] == 1 return nil }
解決這個問題問題,可以建立自訂 bool 類型來處理 bit(1) 欄位。
type BaseModel struct { Id string `orm:"pk";form:"id"` CreatedTime time.Time `orm:"auto_now_add;type(datetime)";form:"-"` UpdatedTime time.Time `orm:"auto_now;type(datetime)";form:"-"` Deleted BitBool `form:"-"` }
以上是如何使用 Beego 的 ORM 將 MySQL 的 bit(1) 類型對應到 Go 類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!