草庐IT

DB_Variable

全部标签

postgresql - 如何在 Go 应用程序中处理打开/关闭 Db 连接?

我的WebAPI应用程序中有一组函数。他们对Postgres数据库中的数据执行一些操作。funcCreateUser(){db,err:=sql.Open("postgres","user=postgrespassword=passworddbname=api_devsslmode=disable")//Dosomedboperationshere}我想函数应该相互独立地与db一起工作,所以现在我在每个函数中都有sql.Open(...)。我不知道这是否是管理数据库连接的正确方法。我是否应该在应用程序启动后在某个地方打开它,并将db作为参数传递给相应的函数,而不是在每个函数中打开连接?

go - 在 go 中测试连接到 db 的处理程序

我有一个连接到数据库并检索记录的处理程序。我为此写了一个测试用例,它是这样的:main_test.gopackagemainimport("os""fmt""testing""net/http""net/http/httptest")varaAppfuncTestMain(m*testing.M){a=App{}a.InitializeDB(fmt.Sprintf("postgres://****:****@localhost/db?sslmode=disable"))code:=m.Run()os.Exit(code)}funcTestRulesetGet(t*testing.T){

戈朗 : command-line-arguments undefined: variable

我想在Golang中创建一个外部函数用于显示使用情况,但我不知道如何调用flag变量。这是我的实际代码:packagemainimport("flag""fmt""os")funcUsage(){ifArgSend{fmt.Printf("Usage:SEND")flag.PrintDefaults()os.Exit(0)}elseifArgTest{fmt.Printf("Usage:-test")flag.PrintDefaults()os.Exit(0)}elseifArgMacro{fmt.Printf("Usage:-macro")os.Exit(0)}else{fmt.Pr

mysql - Golang mysql 客户端 DB.Query 方法不重新编码 utf-8 编码的字符

我有一个mysql表,它的某些列中存储了UTF-8字符。该表是使用DEFAULTCHARSET=utf8创建的;如果我手动运行select语句,我可以看到UTF-8字符,但如果我使用golang客户端并使用DB.Query方法然后我看到字符都是乱码!此外,插入也是从golang客户端完成的。为什么插入内容很好,而读取却出现乱码?在进行查询时,我看不到任何用于设置字符集的参数。我错过了什么? 最佳答案 所以当行被插入数据库时​​,客户端字符集是latin1。默认情况下,golang客户端使用的是utf8。使用utf8再次插入所有行,现

mysql - 在go中连接到db mysql

我目前正在一个go项目中工作。我需要连接到mysql数据库并做一些事情。目前,我遇到了连接问题。首先,我从各种可能的来源(CLI、配置文件或启动参数,视情况而定)加载并存储数据库凭证dbCredentials=DatabaseCredentials{DRIVER_NAME,BOT_LOGIN_NAME+":"+BOT_PASSWORD+"@tcp("+HOST_NAME+")/"+NAME_OF_DB}稍后我尝试打开连接:db,err:=sql.Open(dbCredentials.driverName,dbCredentials.dataSourceName)checkErr(err

go - DB.Exec args 总是导致我的占位符出错

我有一个SQL脚本,其中包含一个我想从Golang设置的变量。SET@foo_bar_invitation_id=?;SELECT@foo_bar_invitation_id;即我要设置?到“foobar”。我的代码:packagemainimport("io/ioutil""log""database/sql"_"github.com/go-sql-driver/mysql")typehandlerstruct{db*sql.DB}func(hhandler)runsql()(errerror){sqlscript,err:=ioutil.ReadFile("script.sql")

go - Beego语法的功能 'Ctx.Input.GetData(' <variable-name >')'

我是beego和goLang的新手。我遇到了一个代码。如果有人可以解释流程,那将非常有帮助。它是一个GETAPI。我认为Prepare()就像一个过滤器。我不明白的是c.Ctx.Input.GetData("customerid")和c.Ctx.Input.GetData("customergroupid")函数。谁能解释一下GetData正在做什么以及我们如何将值传递给它们?//URLMapping...func(c*CampusHomeController)URLMapping(){c.Mapping("GetOne",c.GetOne)}func(c*CampusHomeCont

go - 如何获取 db2cmd 运行的 DB2 命令的输出?

我编写了一个Gocli程序并使用Windowscmd运行它。然后它执行了以下命令:db2cmd-cDB2RESTOREDATABASEDMSCNDBFROM"C:/DB"TAKENAT20180522033009ONC:INTODMSCNDBWITHOUTPROMPTING这是我使用的Go代码:cmd:=exec.Command("db2cmd","-c",arg)buf,err:=cmd.Output()iferr!=nil{log.Fatalf("Failedrestoringbackupwitherror:%s\r\n",err)}else{log.Printf("Success

database - Golang(带 gocql 驱动程序)不返回 Cassandra DB 中的所有条目

我在Cassandra的gocql驱动程序或Cassandra数据库本身中似乎有一个奇怪的错误。我正在尝试做一个简单的写入,然后在两个单独的函数中读取所有请求。我希望我能在读取所有请求时获得所有条目,但我只得到Cassandra中的最后一个条目。我是这样写的:util.CassSession,_=util.CassCluster.CreateSession()deferutil.CassSession.Close()keySpaceMeta,_:=util.CassSession.KeyspaceMetadata("platypus")valC,exists:=keySpaceMeta

go - 如何为 Go 中的行插入重用单个 Postgres DB 连接?

我正在尝试使用Go为从rabbitmq接收到的每条新消息将一行数据插入到Postgres表中,使用与在下面代码的init函数中打开的数据库的单个连接。代码不是只打开一个连接,而是打开497并达到最大值,这导致行插入停止...我已经尝试使用这些问题中的信息openingandclosingDBconnectioninGoapp和opendatabaseconnectioninsideafunction它说我应该打开一个连接并使用全局数据库以允许主函数将sql语句传递给在init函数中打开的连接。我以为我已经这样做了,但是每个新行都会打开一个新连接,因此一旦达到postgres连接限制,代