小编Ale*_*iak的帖子

Golang QueryRow().如果行不存在,则Scan()返回错误

我想从sql数据库中获取一行.我使用以下代码:

var name string
row := db.Con().QueryRow("SELECT name FROM users WHERE id = 2;")
err := row.Scan(&name)

if err != nil {
    // log the error
}
Run Code Online (Sandbox Code Playgroud)

例如:如果用户id=2不存在,则该方法Scan返回错误.

题:

当行不存在时,有没有办法避免这个错误?因为它绝对正常,我不想记录这样的错误.

我发现的唯一方法是使用Query而不是QueryRow,但它不方便,因为for rows.Next() { ..每次我想要获取单行时我都要添加.

go

12
推荐指数
1
解决办法
2万
查看次数

Golang 中的继承和 Json

有两个结构体A和B。B包含A。还有一个附加到A的函数。它返回父对象的json。当我在 B 的实例上调用函数时,我希望看到 json 中的所有对象字段,但我只得到 A 的字段。请看代码:

type A struct {
    Foo string
}

type B struct {
    A
    Bar string
}

func (object *A) toJson() []byte {
    res, _ := json.Marshal(&object)
    return res
}


func main() {
    b := B{}
    fmt.Println(string(b.toJson()))
}
Run Code Online (Sandbox Code Playgroud)

我期望得到{"Foo":"", "Bar":""}但结果是{"Foo":""}。第一种方法是为这两个结构定义两个单独的函数。但有没有第二种解决方案只有一种功能呢?先感谢您。

json go

4
推荐指数
1
解决办法
4931
查看次数

标签 统计

go ×2

json ×1