シングルトン パターンは、クラスにインスタンスが 1 つだけ存在することを保証し、そのインスタンスへのグローバル アクセス ポイントを提供します。このコンテキストでは、データベースへの単一接続を作成し、アプリケーションのどの部分からでもアクセスできるようにします。
シングルトン データベース インスタンスを作成するには、次の手順に従います。
これを Go で実装する方法の例を次に示します。
<code class="go">package dbprovider import ( "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/sqlite" "log" ) type DBManager interface { AddArticle(article *article.Article) error // Add other methods } type dbManager struct { db *gorm.DB } var dbManagerInstance DBManager func init() { db, err := gorm.Open("sqlite3", "../articles.db") if err != nil { log.Fatal("Failed to init db:", err) } dbManagerInstance = &dbManager{db: db} }</code>
シングルトン データベース インスタンスを使用するにはでは、次の関数を呼び出すことができます:
<code class="go">func GetDBManager() DBManager { return dbManagerInstance }</code>
これにより、データベース操作の実行に使用できる共有データベース マネージャー インスタンスが返されます。
するにはGORM ライブラリからの例外を処理するには、GetErrors() メソッドを使用できます。このメソッドは、最後のデータベース操作中に発生したエラーのスライスを返します。エラーがない場合、スライスは空になります。
AddArticle メソッドで、このメソッドを使用してエラーをチェックし、適切にエラーを返すことができます。
<code class="go">func (mgr *dbManager) AddArticle(article *article.Article) (err error) { mgr.db.Create(article) if errs := mgr.db.GetErrors(); len(errs) > 0 { err = errs[0] } return }</code>
以上がGo でデータベース接続を管理するためのシングルトン パターンを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。