golang mysql 全局_关于Golang 全局sql数据库连接

下面由golang教程栏目给大家介绍Golang 全局sql数据库连接,希望对需要的朋友有所帮助!

bba87b55cbc806c886fc7b9d7604eef3.pngGolang 如何把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语言教程栏目!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值