Maison  >  Article  >  développement back-end  >  Comment créer une instance de base de données Singleton avec des méthodes accessibles dans Go ?

Comment créer une instance de base de données Singleton avec des méthodes accessibles dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-01 17:24:02503parcourir

How to Create a Singleton DB Instance with Accessible Methods in Go?

Comment créer une instance de base de données singleton

Dans ce scénario, nous visons à créer une instance de base de données singleton avec des méthodes explicites pour éviter le code passe-partout . Le code fourni déclare une interface, DBOperations, qui décrit les méthodes requises. DBManager encapsule la connexion à la base de données et fournit ces méthodes. Cependant, si vous comptez appeler ces méthodes sur la référence singleton, des modifications sont nécessaires.

Solution :

Utilisez l'approche suivante :

  1. Créer une interface exportée : Définissez une interface exportée nommée Manager qui déclare le méthodes.
  2. Implémenter le type non exporté : Implémenter l'interface Manager dans un type non exporté, manager. Cela empêche toute modification externe de l'interface.
  3. Initialiser la variable globale : Créez une variable globale de type interface Manager et initialisez-la à l'aide d'une fonction package init().
  4. Configurer l'initialisation du package : La fonction init() s'exécute automatiquement avant toute référence au package et initialise la base de données connexion.

En mettant en œuvre ces étapes, vous pouvez créer une instance de base de données singleton avec des méthodes accessibles sans avoir besoin d'une synchronisation explicite.

Capturer et renvoyer les exceptions de gorm.Create ()

Pour intercepter et renvoyer les exceptions de gorm.Create(), modifiez la méthode AddArticle dans le gestionnaire comme suit :

<code class="go">func (mgr *manager) AddArticle(article *article.Article) (err error) {
    if err := mgr.db.Create(article).Error; err != nil {
        return err
    }
    return nil
}</code>

Cela vous permet de renvoyer directement l'objet d'erreur, permettant la gestion des erreurs dans le code appelant.

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:
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