草庐IT

value_for_database

全部标签

database - 在使用带有 Postgres 的 Go sqlx 包运行 UPDATE 查询时,您能否检索更新行的列表?

我有一个查询,我正在使用Go的sqlx包(标准数据库/sql包的扩展)和Postgres数据库运行。它看起来像这样:result,err:=s.getDB(tx).Exec(`UPDATEtable_nameSETvar_name=0WHEREvar_name=1;`)iferr!=nil{returnnil,err}在不使用托管事务的情况下,如何检索更新行的列表?或者至少更新行的主键列表? 最佳答案 使用PostgreSQL'sRETURNINGclause和db.Query/db.Select变体而不是Exec,例如//gett

database - 如何编写与数据库无关的函数以使其更易于单元测试

TLDR:对使用数据库作为其数据源但数据源不必是数据库(即函数不知道)的函数进行单元测试的最佳方法是什么数据的来源。例如,它可以是对象等)?=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=我试图找出使用数据库作为其数据源(通过其参数传递)的单元测试函数的最佳实践是什么,但数据源不必是数据库(例如,它可以是一个对象等)。我添加子句“数据源不必是数据库”的原因是因为我不想在单元测试期间使用数据库。那么,如何编写与数据库无关的函数?一种可能的方法是提供一个保存数据源的“env”参数,如下所示:typeEnvstru

database - Go MongoDB (mgo) - 不释放关闭的连接

我的MongoDB数据库的事件连接数量快速增长。我编写了一段代码来测试连接创建/关闭流程的工作原理。这段代码总结了我如何使用mgo我项目中的库。packagemainimport("time""fmt""gopkg.in/mgo.v2")funcmain(){//Noconnections//db.serverStatus().connections.current=6mongoSession:=connectMGO("localhost","27017","admin")//1newconnectioncreated//db.serverStatus().connections.cu

database - 记录两次插入数据库

我在Go中有如下代码:packagemainimport("database/sql""log"_"github.com/lib/pq")const(insertLoginSQL=`insertintoLogins(id,name,password)values($1,$2,$3)`)funcmain(){db,err:=sql.Open("postgres","user=postgrespassword=admindbname=Qualitysslmode=disable")iferr!=nil{log.Fatal(err)}deferdb.Close()iferr:=Insert(

for-loop - 在 for 循环中使用 AtoI 时出错

我是golang的新手,我确信我遗漏了一些非常基本的东西,但由于我已经搜索了网络,但没有找到任何可以帮助我理解我的问题的东西,我想我会把它贴在这里。本质上我想做的是从字符串到int的简单转换。字符串作为表示为字符串的数值(即“1”)到达;我想将它更改为等效的int以便我可以在switch...案例中使用它。我已经尝试了Atoi和parseInt,但都因相同的错误而失败:./test.go:1765:cannotusev(type[]string)astypestringinargumenttostrconv.Atoi我试图先将它分配给一个字符串,然后将它传递给Atoi,但它仍然没有用。

go - 嵌套接口(interface) : X does not implement Y (Wrong type for Z method)

在一个包中我有一个接口(interface)Repository有一个方法GetReporter返回一个接口(interface)Reporter.这是由一个函数使用Execute这需要Repository并得到它的Reporter通过GetReporter功能。在另一个包中我有一个结构GithubRepository有一个方法GetReporter返回GithubReporter.在第三个包中,我想调用Execute使用GithubRepository在包#1外运行实例。我正在尝试让包1和包2彼此独立,而不是从另一个导入某些东西。第三个包应该结合前两个。Golang返回:cannot

for-loop - 为什么我需要对我的 go 例程/ channel 的结果进行额外的 for 循环以显示所有结果?

代码的快速解释:我正在搜索db.Feeds()这是一个RSS提要URL列表。我在getFeeds()中获取提要通过协程运行getFeeds()的输出返回到rsschannel然后我打印RSS信息funcmain(){rss:=make(chanfeed)for_,url:=rangedb.Feeds(){gogetFeeds(url,rss)}forrangedb.Feeds(){newFeed:=我的问题如下:当我直接打印newFeed变量时,它不会显示来自rsschannel的所有结果,只显示第一个。我好像必须超过db.Feeds()(RSS提要url列表)并打印包含gogetFe

go - 如果使用 import func,如何在控制台中获取 value 属性?

我需要获取属性值:telegram_token:“电报token”other_token:"othertoken"但是如果我执行importapi的Init()并在funcmain()中初始化函数,我不会获得属性值。为什么?谢谢!这是可行的:packagemainimport("fmt""github.com/go-yaml/yaml")var(cfgConfigconfigData=[]byte(`api:telegram_token:"telegramtoken"other_token:"othertoken"`))typeConfigstruct{APIConfigAPI`yam

go - type reflect.Value 不支持索引

我有一个通用类型数组interface{},我想检查该数组是否在其JSON对象之一中包含特定值。history:=reflect.ValueOf(historyInterface)fori:=0;i下面是每次迭代的测试结果:firstiterationmap[id:5afbff19bf07c79c19ed9af9date:Saturday,January21,20179:21PMcertitude:33]seconditerationmap[id:afbff198658487a3e3e376bdate:Thursday,March3,20162:24PMcertitude:30]inv

Go:再次将类型为 uuid.UUID (satori) 的 reflect.Value 转换回 uuid.UUID

我试图再次将反射的UUID转换回实际的UUID对象,但找不到方法,当我打印反射值时它看起来是正确的,但在尝试转换时我找不到方法。packagemainimport("fmt""reflect"uuid"github.com/satori/go.uuid")funcmain(){value:=uuid.Must(uuid.NewV4())reflectedValue:=reflect.ValueOf(value)fmt.Println(reflectedValue)result:=reflectedValue.String()fmt.Println(result)}输出:$gorunma