Maison > développement back-end > Golang > Comment mapper le type « bit » de MySQL : booléen ou type personnalisé ?

Comment mapper le type « bit » de MySQL : booléen ou type personnalisé ?

Linda Hamilton
Libérer: 2024-11-17 11:07:02
original
245 Les gens l'ont consulté

How to Map MySQL's 'bit' Type to Go: Bool or Custom Type?

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:"-"`
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal