Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich eine Singleton-DB-Instanz mit zugänglichen Methoden in Go?

Wie erstelle ich eine Singleton-DB-Instanz mit zugänglichen Methoden in Go?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 17:24:02503Durchsuche

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

So erstellen Sie eine Singleton-DB-Instanz

In diesem Szenario möchten wir eine Singleton-DB-Instanz mit expliziten Methoden erstellen, um Boilerplate-Code zu vermeiden . Der bereitgestellte Code deklariert eine Schnittstelle, DBOperations, die die erforderlichen Methoden beschreibt. DBManager kapselt die Datenbankverbindung und stellt diese Methoden bereit. Wenn Sie jedoch beabsichtigen, diese Methoden in der Singleton-Referenz aufzurufen, sind Änderungen erforderlich.

Lösung:

Verwenden Sie den folgenden Ansatz:

  1. Erstellen Sie eine exportierte Schnittstelle: Definieren Sie eine exportierte Schnittstelle mit dem Namen Manager, die die gewünschten Methoden deklariert.
  2. Implementieren Sie den nicht exportierten Typ: Implementieren Sie die Manager-Schnittstelle in einem nicht exportierten Typ. Manager. Dies verhindert eine externe Änderung der Schnittstelle.
  3. Globale Variable initialisieren: Erstellen Sie eine globale Variable vom Typ Manager-Schnittstelle und initialisieren Sie sie mithilfe einer Paketinit()-Funktion.
  4. Paketinitialisierung konfigurieren: Die Funktion init() wird automatisch vor allen Verweisen auf das Paket ausgeführt und initialisiert die Datenbankverbindung.

Durch die Implementierung dieser Schritte können Sie eine Singleton-DB-Instanz erstellen mit zugänglichen Methoden ohne die Notwendigkeit einer expliziten Synchronisierung.

Ausnahmen von gorm.Create() abfangen und zurückgeben

Um Ausnahmen von gorm.Create() abzufangen und zurückzugeben, Ändern Sie die AddArticle-Methode im Manager wie folgt:

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

Dadurch können Sie das Fehlerobjekt direkt zurückgeben und so die Fehlerbehandlung im aufrufenden Code aktivieren.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Singleton-DB-Instanz mit zugänglichen Methoden in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn