私のWeb APIアプリケーションには一連の機能があります。彼らはPostgresデータベースのデータに対していくつかの操作を実行します。Goアプリで開閉のDb接続を処理するにはどうすればよいですか?
func CreateUser() {
db, err := sql.Open("postgres", "user=postgres password=password dbname=api_dev sslmode=disable")
// Do some db operations here
}
私は機能が互いに独立してデシベルで動作するはずと仮定し、今私は、各関数内sql.Open(...)
を持っています。 db接続を管理する正しい方法であるかどうかはわかりません。
アプリケーションが開始されたら、どこかで開く必要があります。すべての関数で接続を開く代わりに、対応する関数の引数としてdbを渡しますか?
を
DB.Ping()
を使用し、テストするには 'DB.'を閉鎖する必要はほとんどありませんか?いつでも接続を開くことができますか? –@GujaratSantanaはい、常時DB接続を閉じて再オープンしないことを強く推奨します。 dbの変更(データベース名、ホスト、認証情報の変更など)が必要な場合にのみ、db接続を閉じる必要があります。またはあなたのアプリが終了するとき。 – icza