ホームページ  >  記事  >  バックエンド開発  >  Golang グローバル SQL データベース接続について

Golang グローバル SQL データベース接続について

藏色散人
藏色散人転載
2020-12-23 14:56:553304ブラウズ

次のコラムでは、 からの Golang グローバル SQL データベース接続について説明します。 golang チュートリアル コラム. 困っている友達のお役に立てれば幸いです!

Golang グローバル SQL データベース接続について

Golang SQL データベース接続をグローバルとして記述する方法。毎回頻繁に作成および破棄する必要がなく、データベースの消費量とコードの複雑さを軽減します。

データベース接続は通常、モデル層の下の db.go で定義されます (名前はカスタマイズされており、データベースに関連するデータベースまたは SQL にすることもできます)
私は mongoDb を使用しているためここでは、モデル /mgo.go

コード:

package model

import (
    "context"
    _ "fmt"
    "go.mongodb.org/mongo-driver/mongo"
    "go.mongodb.org/mongo-driver/mongo/options"
    "log"
    "time"
)

type mgo struct {
    uri        string //数据库网络地址
    database   string //要连接的数据库
    //collection string //要连接的集合
}
var (
    DB *mongo.Database
)

func Connect() (*mongo.Database, error) {
    var m = &mgo{
        "mongodb://localhost:27017",
        "数据库名",
        //"数据库表名",
    }

    ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
    defer cancel()
    client, err := mongo.Connect(ctx, options.Client().ApplyURI(m.uri))
    if err != nil {
        log.Print(err)
    }
    DB = client.Database(m.database)
    return DB, err
}

その後、main.go

func main() {
  //初始化mongodb
  model.Connect()
}

で初期化しますデータベース操作を実行する必要がある場合、モデル DB で直接呼び出すには、

collection := model.DB.Collection("表名")
//插入操作
insertResult, err := collection.InsertOne(context.TODO(), "内容")

mysql または他のデータベースまたは gorm フレームワークを使用できます。同様のことが当てはまります。

その他の関連技術記事については、go language チュートリアル列をご覧ください。

以上がGolang グローバル SQL データベース接続についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlearnku.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。