Golang全局sql数据库连接的示例-创新互联

小编给大家分享一下Golang全局sql数据库连接的示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

成都创新互联专业提供成都主机托管四川主机托管成都服务器托管四川服务器托管,支持按月付款!我们的承诺:贵族品质、平民价格,机房位于中国电信/网通/移动机房,成都机柜租用服务有保障!

Golang 如何把sql数据库连接写成全局的,不用每次频繁创建销毁,减少数据库消耗与代码复杂度。

数据库连接通常在model层下的db.go中定义(命名自定义,也可以是database或者sql,与数据库相关)
因为我这里是使用mongoDb所以为model/mgo.go

代码:

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

看完了这篇文章,相信你对“Golang全局sql数据库连接的示例”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


网站名称:Golang全局sql数据库连接的示例-创新互联
路径分享:http://hbruida.cn/article/ggdhg.html