- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在 Go 中使用 sqlx,这非常有帮助,但是当我使用 struct scan 并且 struct 的类型与 sql 类型不匹配时,它似乎没有抛出错误。例如,我在这里设置了一个数据库,使其具有名称(字符串)和年龄(整数):
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| name | varchar(255) | NO | | NULL | |
| age | int(11) | NO | | NULL | |
+-------+--------------+------+-----+---------+-------+
+------+-----+
| name | age |
+------+-----+
| bob | 10 |
+------+-----+
然后我使用 sqlx 将值读出到一个结构中,但是该结构的类型错误。
package main
import (
"log"
"github.com/jmoiron/sqlx"
_ "github.com/go-sql-driver/mysql"
)
// in database name is a string and age is an int
type Person struct{
Name int
Age string
}
func main() {
sqlSession, err := sqlx.Open("mysql", "root:@(localhost:3306)/dashboard?parseTime=true")
if err != nil {
log.Panic(err)
}
err = sqlSession.Ping()
if err != nil {
log.Panic(err)
}
query := "SELECT * FROM test"
rows, errSql := sqlSession.Queryx(query)
if errSql != nil {
log.Panic(errSql)
}
for rows.Next() {
var p Person
errScan := rows.StructScan(&p)
if errScan != nil {
log.Panic(errScan)
}
log.Println("Person:", p)
}
}
所以它没有给我一个错误,而是将值清零了。人:{0}
有没有其他人遇到过这个问题?还有其他人认为这是一个错误吗?我认为当我尝试扫描到无效类型时它应该会给我一个错误。
最佳答案
我怀疑这是在找不到放置返回值的位置时决定不返回错误的副作用。您可能不想返回错误的原因之一是,如果您执行“select *”,那么即使您的结构包含所有列,如果代码不立即开始返回错误,您将无法添加新列。
有人可能会争辩说,如果所有 查询列都未使用,那么它应该返回一个错误。可能打开项目的问题将是要走的路。
关于mysql - 扫描到无效类型时,sqlx 不会抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294236/
我正在使用 jmoiron sqlx我的 golang 项目的库。我试图创建一个数据库连接mysql。所以,我找到了这两个函数:sqlx.Connect() 和 sqlx.Open(),但没有发现区别
我正在尝试实现一个 sql 查询,它以 jQuery Datatables 期望的方式返回数据,同时允许用户自定义查询(我正在做很多输入验证以确保没有任何 sql 注入(inject))。查询是应该按
前言 上次咱们学习了如何使用Go操作Mysql,并且实现了简单的增删改查。 但是相对来说,还有有点复杂的,可能那些大佬也都觉得繁琐叭。 就又开发出了增强版查询Mysql操作库Sqlx。
我有不同类型的 REST API,它们有一些共同点: 所有类型都有Id 所有类型都有类型 所有类型都有属性,但属性不同 因为我不想有大量不必要的类型,所以我提出了一种类型格式,但它似乎不能被 sqlx
如果我尝试如下使用SQLx Rust的postgres功能, [dependencies] sqlx = { version = "0.3.3", default-features=false , f
我正在尝试使用准备好的语句从 postgress 表中获取一些数据 如果我尝试使用 database.Get() 返回所有内容。 表格: create table accounts ( id
假设我有两个模型, type Customer struct { Id int `json:"id" db:"id"` Name strin
main.rs: #[async_std::main] async fn main() -> Result { use sqlx::Connect; let mut conn = sq
在 sqlx有一个 Transaction type 允许您在一个事务中运行多个查询。 我试图弄清楚如何做到这一点,遗憾的是没有记录,尽管有自动生成的 API 文档。 我的第一次尝试: async f
我在MySQL数据库中有一张大表,我正试图尽可能高效地读取该表。我当时在考虑通过添加多个工作程序来加速代码,但是当我这样做时,在运行它的开始(并且仅在开始时)出现编码(marshal)处理错误,它看起
我在 Go 中使用 sqlx,这非常有帮助,但是当我使用 struct scan 并且 struct 的类型与 sql 类型不匹配时,它似乎没有抛出错误。例如,我在这里设置了一个数据库,使其具有名称(
我正在使用 sqlx 在我的 Go 代码中执行查询。该查询有一长串值(~10,000),我需要在 WHERE IN (?) 子句中对其进行过滤。这会导致性能大幅下降。我该如何优化这样的查询?此外,此查
此问题特定于 github.com/jmoiron/sqlx .我想用命名查询插入一个已知的时间戳或日期。我怎么做?我使用 time.Now() 作为给定时间戳的示例。 这是我在 MySQL 中的表:
我正在尝试使用一个简单的查询将两个表 person 和 profile 内部连接起来,这似乎适用于 mysql 但不适用于 sqlx。这是我的代码: package main import (
我正在使用 go 1.10.3,我正在尝试使用 sqlx 包获取一行并将其输入到带有 Get() 的结构中,或者获取多行并输入它们使用 Select() slice 。 让我们从将一行放入结构开始。
我想在单个查询中更新多行: //threadIDs is a variable length slice of integers like [3 5 6] query := "UPDATE messa
考虑以下示例: package main import ( "fmt" "github.com/jmoiron/sqlx" _ "github.com/go-sql-drive
但是下面粘贴的代码永远不起作用,而不是一个一个地迭代和扫描结果,是否有可能让下面的代码起作用?? 非常感谢您的投入。谢谢 type CustomData struct { ID
我正在尝试执行包含自定义 geoPoint 类型的 postgres 查询,但收到意外的 EOF 错误。对我做错了什么有什么想法吗? type Account struct { Id
我正在学习 Go 并尝试创建一个具有“字段”参数的 API 端点。当我尝试将 sqlx 结果行扫描到结构中时,但是用户省略的字段将作为空字符串返回。有没有办法可以更改结构以仅反射(reflect)用户
我是一名优秀的程序员,十分优秀!