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

關於Golang 全域sql資料庫連接

藏色散人
發布: 2020-12-23 14:58:12
轉載
3313 人瀏覽過

下列中之後對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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板