我已经阅读了一些关于如何处理数据库连接的StackOverflow答案。由于它是一个池,因此我们可以全局定义它,并在多个goroutine中使用它,这是安全的。
我遇到的问题是我已将REST
API拆分为多个软件包。这些软件包中的每一个都需要一个db连接,因此我在启动时打开了一个数据库连接。但是,即使我全局html" target="_blank">定义连接,也只能在程序包级别进行。我应该怎么做才能在多个软件包中共享它?
在某些情况下,我在应用程序中使用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
...
}
问题内容: 我正在尝试建立一个共享库。让我们说libabc.so。它使用另一个.so文件,例如lib123.so(/ usr / local / lib中的一个lib)。现在我在我的应用程序中使用共享的liblibabc.so。说我的应用程序。我想知道我应该如何链接这些二进制文件?我不想直接将我的应用程序与lib123.so链接。my- app应该仅与libabc.so链接。我怎样才能做到这一点?
我正在开发一个查询多个数据库的监控插件。我想使用HikariCP来保持连接打开,但我不知道如何实例化连接池。 HikariCP是否只使用一个池来存储多个数据库?或者一个数据库只有一个池,我的责任是实例化我将使用的数据库中的尽可能多的池。
问题内容: 两个共享库liba.so和libb.so。liba.so使用libb.so。所有c文件都使用-fPIC编译。链接使用- shared。当我们在liba.so上调用dlopen时,它无法在libb.so中找到符号…我们得到“未定义符号”错误。我们可以dlopen libb.so没有错误。我们知道liba正在找到libb,因为我们没有得到文件未找到错误。删除libb.so时,出现文件未找到
问题内容: 我正在使用Mongoose来管理Mongo数据库。我的连接文件非常简单: 然后在我的app.js中 并且“猫鼬”变量在全球范围内可用。我不想使用全局变量(至少不直接使用)。是否有更好的方法通过单例模式或其他方法在节点之间共享数据库连接变量(我正在使用express.js)? 问题答案: 我只是在app.js文件中执行以下操作: 此时,任何需要访问该模型的文件都可以执行以下操作: 最后,
我知道这是一个非常简单的问题,但由于我是Wildfly的新手,我还没有成功地完成它。 在JBoss 4.2的旧时代,当我想与多个war文件共享一个ejb jar文件时,我只是将ejb jar文件部署到应用服务器上,并在war项目中使用文件“jndi”配置jndi。属性放置在war文件的某个源目录中,如下所示: 现在,在Wildfly 8.1中,这种方法不再有效。我不知道jndi属性文件的内容是否发
本文向大家介绍golang中连接mysql数据库,包括了golang中连接mysql数据库的使用技巧和注意事项,需要的朋友参考一下 golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连接mysql首先需要调用sql.Open函数,但是此时并没有真正的去