Golang 全局sql数据库连接

也许会了 · · 941 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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框架之类的,都是同理。

本文来自php中文网的golang栏目:https://www.php.cn/be/go/


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:也许会了

查看原文:Golang 全局sql数据库连接

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

941 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传