首頁  >  文章  >  後端開發  >  關於Golang 全域sql資料庫連接

關於Golang 全域sql資料庫連接

藏色散人
藏色散人轉載
2020-12-23 14:56:553274瀏覽

下列中之後對golang教學專欄為大家一起介紹Golang 全域sql一起連接,希望對需要的朋友有所幫助!

關於Golang 全域sql資料庫連接

Golang 如何把sql資料庫連接寫成全域的,不用每次頻繁建立銷毀,減少資料庫消耗與程式碼複雜度。

資料庫連接通常在model層下的db.go中定義(命名自定義,也可以是database或sql,與資料庫相關)
因為我這裡是使用mongoDb所以為model /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()
}

需要進行資料庫操作時,直接呼叫model中的DB即可

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

mysql或者其它資料庫或gorm框架之類的,都是同理。

更多相關技術文章,請造訪go語言教學欄位!

以上是關於Golang 全域sql資料庫連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除