Maison > Article > développement back-end > Comment mapper le type « bit » de MySQL : booléen ou type personnalisé ?
Mappage du type « bit » de MySQL vers Go : comprendre la sélection du type Go
Dans MySQL, le type de données « bit » représente un seul bit valeur, souvent utilisée pour indiquer un état booléen. Lorsque vous utilisez Go avec MySQL via un ORM comme Beego, il est essentiel de choisir le type Go approprié pour mapper ce type de « bit ».
Considérations sur les types de données Java et Go
Comme mentionné, Java utilise un type « bit(1) » pour de tels scénarios. Cependant, dans Go, il n’existe pas de type « bit » natif. Par conséquent, nous devons déterminer quel type Go peut représenter de manière adéquate les valeurs « bits ».
Bool ou type personnalisé ?
Au départ, il peut sembler logique d'utiliser le Passez au type 'bool', correspondant à la nature booléenne de la donnée 'bit'. Cependant, l'utilisation de « bool » peut entraîner des erreurs de conversion lors de l'interaction avec la base de données.
Implémentation BitBool personnalisée
Pour résoudre ce problème, la bibliothèque Go « Sqlx » fournit un type 'BitBool' personnalisé spécialement conçu pour mapper les données 'bit' de MySQL. Ce type implémente les interfaces driver.Valuer et sql.Scanner, convertissant efficacement les valeurs booléennes vers et depuis les champs de bits 'bit(1)'.
Implémentation Beego ORM
Dans votre structure Beego ORM, vous pouvez maintenant utiliser le type 'BitBool' pour le champ 'Supprimé', comme indiqué ci-dessous :
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:"-"` }
En utilisant le type 'BitBool' personnalisé, vous pouvez mapper efficacement les données 'bit(1)' au type Go 'BitBool' dans votre projet Beego sans avoir à modifier la base de données schéma.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!