加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Golang中与多个包共享全局定义的db conn

发布时间:2020-12-16 19:29:23 所属栏目:大数据 来源:网络整理
导读:我已经阅读了一些关于我们应该如何处理数据库连接的StackOverflow的答案.由于它是一个池,我们可以在全局定义它,并在多个goroutines中使用它,它是安全的. 我遇到的问题是我将我的REST API分成多个包.每个这些包都需要一个数据库连接,所以我在启动时打开一个数
我已经阅读了一些关于我们应该如何处理数据库连接的StackOverflow的答案.由于它是一个池,我们可以在全局定义它,并在多个goroutines中使用它,它是安全的.

我遇到的问题是我将我的REST API分成多个包.每个这些包都需要一个数据库连接,所以我在启动时打开一个数据库连接.但是,即使我在全局定义连接,它只是在包级别.我可以做什么来潜在地在多个包之间分享?

对于某些上下文我在我的应用程序中使用PostgreSQL驱动程序和gin-gonic.

还可以选择创建另一个包来保存数据库连接相关设置.然后,它可以具有一个包级别的全局,可以在main中初始化,并在导入它的任何包中使用.

这样,您可以显式地看到正在导入数据库包.这是一些示例代码.

package database

var (
    // DBCon is the connection handle
    // for the database
    DBCon *sql.DB
)
package main

import "myApp/database"

func main() {

    var err error
    database.DBCon,err = sql.Open("postgres","user=myname dbname=dbname sslmode=disable")

}
package user

import "myApp/database"

func Index() {
    // database handle is available here
    database.DBCon

    ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读