问题标签 [sqlx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 在 Go 中初始化和保留准备好的语句的推荐方法是什么?
我正在使用sqlx编写我的第一个 Go 项目,并且想使用 Prepared 语句。
我不确定以一种易于管理的方式初始化和保留 Prepared 语句变量的推荐做法是什么。
我希望它们只能从实际上必须使用它们的代码部分访问,到目前为止,每个语句都由一个函数使用,因此全局变量不是一个好的选择(除了通常不被接受之外)。
在 C/C++ 中,我可能会使用函数静态变量并在第一次输入函数时对其进行初始化。这样,关于语句内容和使用它的调用的信息就彼此接近了。
但是据我所知,到目前为止,Go 中没有“方法静态变量”,那么还有什么替代方法呢?
我找到了对闭包的引用,它们是匿名函数,但这是实现这一目标的最佳方法吗?从“准备好的陈述最佳实践”的角度来看,我的目标是正确的吗?
go - 对接口 args 使用 sqlx.Rows.StructScan
我需要对接口使用 StructScan 函数(指向结构的指针)。但是,如果我尝试反映值,则会出错,因为reflect.New()返回了 reflect.Value类型。如何扫描结构并将数据存储到dest var?
sql - How to unfold a list of int pairs in SQL select query
I have the following list of parameters:
Now I want to build a query which go trough the list and match parmeters: (the part after for is a pseudocode which I want to write in PostgreSQL 9.4)
How to write this query in Go (using jmoiron.github.io/sqlx or standard database/sql
)?
json - JSON Marshaling 产生意想不到的结果
这是一个演示我的问题的 Go Playground:http ://play.golang.org/p/2fq3Fg7rPg
本质上,我正在尝试 JSON 编组一个包含自定义类型 wrapping 的结构json.RawMessage
。使用时,CustomType.MarshalJSON()
我得到了预期的结果,但仅调用json.Marshal
我的完整结构并不能按预期工作。有关具体示例,请参见操场链接。
是什么导致了这种差异?
有没有办法json.Marshal
像我期望的那样工作?
postgresql - Go:如何使用 NamedExec() 在 Postgresql 上获取最后一个插入 ID
我在 Go 应用程序中使用jmoiron/sqlx库与我的 PostgreSql 服务器进行通信。在我的应用程序的某个地方,我有以下代码:
问题:如何使用 return from 获取最后一个插入 id tx.NamedExec()
?我试过datas.LastInsertId()
了,但它总是返回 0。
注意:我确定插入到 postgres 是成功的。
postgresql - 选择函数无法使用 PostgreSql 正确查询,没有抛出错误
我有以下功能,这是一项正在进行的工作。此外,我试图执行的查询至少可以说是一个脑筋急转弯:
功能:
问题:
- 我知道这个查询确实有效,因为我在 pgAdmin3 中编写了它。
- 我还记录了查询变量的输出结果,并且查询按预期运行,再次使用 pgAdmin3。
- Select 函数不返回错误
- 我已经扫描了 sqlx 的文档,并试图用谷歌搜索这个问题,但没有出现任何解决方案。
使用:
- Postgres:9.4.1
- 去:1.5
附加信息:
如果我遗漏了部分文档,或者我应该使用而不是选择的 sqlx 中的另一个函数,或者是否需要我提供任何其他信息,请告诉我。
oracle - 获取最后插入的 id (go + oracle)
我需要使用带有 go-oci8 ( https://github.com/mattn/go-oci8 ) 驱动程序的 sqlx ( https://github.com/jmoiron/sqlx ) 从我的 go 应用程序在 Oracle 数据库中插入两条记录。第二条记录通过外键引用前一条。所以我需要有第一条记录的主键(它是从序列中分配的,在第一张表上插入触发器之前),然后才能插入第二条记录。
所以我尝试获取最后插入的 id:
LastInsertId 对我来说失败了:
输出:
然后我尝试制作插入记录并返回主键的存储函数。
但我没有找到一种方法来得到它的结果。PostgreSQL 样式选择失败:
并且 OCI8 样式变量绑定不起作用:
输出:
如何获取最后插入的 ID,或者如何从 Oracle 的 Go 中存储的函数中获取值?
go - struct Time 属性不会从 Go sqlx 库中加载
我有一个带有时间属性的结构:
时间保存为:
如果我使用 Insert sql 语句保存它,它可以很好地节省 SQLite3 中的时间,但是当我使用以下命令选择所需的记录时:
它返回具有正确加载的其他属性的记录,除了 time 属性ret_basket.Created_at
是0001-01-01 00:00:00 +0000 UTC
有什么建议么?
database - Go 语言,使用 sqlx.StructScan 扫描嵌入式结构
我刚开始学习 Go 语言。我写了以下简单的程序。
在这里,我试图用所有书籍和相关作者填充结构。
Book
struct 已嵌入Author
struct。
但是当我运行它时,它给出了以下错误
我做错了什么?
我也尝试将Book
结构中的字段标记更改为
并将查询更改为
但它没有任何改变。
编辑
经过几次尝试和错误,我终于让它工作了。
我必须稍微更改我创建的模型。我将 Book 结构从
至
现在,它工作正常。我做的错误是,我将Bauther
字段添加为Auther
. Sqlx 无法理解。但是当我添加Auther
为匿名嵌入式结构时,问题就解决了。
但它引入了另一个问题:)
由于 ID 字段存在于Book
两个Auther
结构中。现在 ScanStructBook.ID
在所有行中都填充了 0。
我能做些什么来避免它吗?