下面由golang教程栏目给大家介绍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框架之类的,都是同理。

更多相关技术文章,请访问go语言教程栏目!

更多相关文章

  1. 基于关系型数据库引擎的"XML"索引技术
  2. 从无到有实现一个xml数据库登录验证
  3. XML数据库中几个容易混淆的概念详细介绍
  4. 关于XML数据库中几个容易混淆的概念详解
  5. 介绍数据库生成xml的两个简单示例代码
  6. 芋道 Spring Boot 数据库版本管理入门
  7. 芋道 Spring Boot 数据库连接池入门
  8. 一个实用技巧,告别手动画图,自动生成数据库 ER 图|原创
  9. 基于代理的数据库分库分表框架 Mycat实践

随机推荐

  1. 解决Apache2+PHP上传文件大小限制的问题
  2. 如何在PHP 5.4.33 Apache服务器上启用mbs
  3. 解析错误:语法错误,E:\xampp\htdocs\on
  4. 访问控制允许原点 - 不工作
  5. 如何使用ChromePhp Logger记录数组
  6. 最佳做法,PHP,每天跟踪数百万次展示
  7. 使用PHP和MySQL开发“测试”Web应用程序
  8. 如何获取关联数组的当前元素数?
  9. 如何使用PHP读取.xls文件(Excel) ?
  10. 在返回按钮上重新加载页面。