4

Beego ORM は今のところ不完全です (たとえば、外部キー制約をサポートしていません)。そこで、Beegoで gorm を使用することにしました。それを行う適切な方法は何ですか?gorm のサンプル コードを見てきました。

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres"
)

func main() {
  db, err := gorm.Open("postgres", "host=myhost user=gorm dbname=gorm sslmode=disable password=mypassword")
  defer db.Close()
}

しかし、すべてのコントローラー関数で毎回データベースに接続する必要がありますか? 長いポーリング接続のようなものを使用する方法はありますか?

4

2 に答える 2

3

gorm は、フードの下で gorm.DB に埋め込まれた sql.DB タイプを使用します。

DB は、基礎となる 0 個以上の接続のプールを表すデータベース ハンドルです。複数のゴルーチンで同時に使用しても安全です。sql パッケージは、接続を自動的に作成および解放します。また、アイドル状態の接続の空きプールも維持します。

したがって、取得したDBをコードでグローバルに使用できます。リクエスト処理で分離レベルが必要な場合は、トランザクションを使用します

tr:=db.Begin()
于 2016-09-08T07:59:32.000 に答える