ホームページ > バックエンド開発 > Golang > Go でアクセス可能なメソッドを備えたシングルトン DB インスタンスを作成するにはどうすればよいですか?

Go でアクセス可能なメソッドを備えたシングルトン DB インスタンスを作成するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-01 17:24:02
オリジナル
605 人が閲覧しました

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

シングルトン DB インスタンスを作成する方法

このシナリオでは、ボイラープレート コードを回避する明示的なメソッドを使用してシングルトン DB インスタンスを作成することを目的としています。 。提供されたコードは、必要なメソッドの概要を示すインターフェイス DBOperations を宣言します。 DBManager はデータベース接続をカプセル化し、これらのメソッドを提供します。ただし、シングルトン参照でこれらのメソッドを呼び出す場合は、変更が必要です。

解決策:

次のアプローチを使用します:

  1. エクスポートされたインターフェイスの作成: 必要なメソッドを宣言する Manager という名前のエクスポートされたインターフェイスを定義します。
  2. アンエクスポート型の実装: アンエクスポート型で Manager インターフェイスを実装します。マネージャー。これにより、インターフェイスの外部変更が防止されます。
  3. グローバル変数の初期化: Manager インターフェイス タイプのグローバル変数を作成し、パッケージ init() 関数を使用して初期化します。
  4. パッケージの初期化の構成: init() 関数は、パッケージへの参照の前に自動的に実行され、データベース接続を初期化します。

これらの手順を実装することで、シングルトン DB インスタンスを作成できます。

gorm.Create() からの例外をキャッチして返す

gorm.Create() から例外をキャッチして返すには、マネージャーの AddArticle メソッドを次のように変更します。

<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>
ログイン後にコピー

これにより、エラー オブジェクトを直接返すことができ、呼び出しコードでのエラー処理が可能になります。

以上がGo でアクセス可能なメソッドを備えたシングルトン DB インスタンスを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート