Heim >Backend-Entwicklung >Golang >Wie ordne ich den „bit'-Typ von MySQL Go zu: Bool oder benutzerdefinierter Typ?
Zuordnung des MySQL-Typs „bit“ zu Go: Grundlegendes zur Auswahl des Go-Typs
In MySQL stellt der Datentyp „bit“ ein einzelnes Bit dar Wert, der häufig zur Angabe eines booleschen Zustands verwendet wird. Wenn Sie Go mit MySQL über ein ORM wie Beego verwenden, ist es wichtig, den geeigneten Go-Typ für die Zuordnung dieses „Bit“-Typs auszuwählen.
Überlegungen zum Datentyp Java vs. Go
Wie bereits erwähnt, verwendet Java für solche Szenarien den Typ „bit(1)“. Allerdings gibt es in Go keinen nativen „Bit“-Typ. Daher müssen wir bestimmen, welcher Go-Typ die „Bit“-Werte angemessen darstellen kann.
Bool oder benutzerdefinierter Typ?
Zunächst mag es logisch erscheinen, den zu verwenden Gehen Sie vom Typ „bool“, entsprechend der booleschen Natur der „Bit“-Daten. Die Verwendung von „bool“ kann jedoch zu Konvertierungsfehlern bei der Interaktion mit der Datenbank führen.
Benutzerdefinierte BitBool-Implementierung
Um dieses Problem zu beheben, bietet die Go-Bibliothek „Sqlx“. ein benutzerdefinierter „BitBool“-Typ, der speziell für die Zuordnung der „Bit“-Daten von MySQL entwickelt wurde. Dieser Typ implementiert die Schnittstellen „driver.Valuer“ und „sql.Scanner“ und konvertiert effektiv boolesche Werte in und aus „bit(1)“-Bitfeldern.
Beego ORM-Implementierung
Innerhalb In Ihrer Beego ORM-Struktur können Sie jetzt wie gezeigt den Typ „BitBool“ für das Feld „Gelöscht“ verwenden unten:
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:"-"` }
Durch die Verwendung des benutzerdefinierten Typs „BitBool“ können Sie die „bit(1)“-Daten effektiv dem Go-Typ „BitBool“ in Ihrem Beego-Projekt zuordnen, ohne die Datenbank ändern zu müssen Schema.
Das obige ist der detaillierte Inhalt vonWie ordne ich den „bit'-Typ von MySQL Go zu: Bool oder benutzerdefinierter Typ?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!