跳到主要内容

查询结果扫描

Scan 方法

Gobaits 只有 Scan() 一个扫描结果的方法, 它能够自动识别结果接收类型,并且精确的匹配查询数据字段和结果接收的字段。

精确匹配

查询的结果列必须覆盖接收类型的全部字段,否则会报错: DatasetNotCoveredErr.

如下所示,查询的结果必须覆盖 product 的所有属性:

batis.Query(`select * from products where id = #{id}`,batis.Param("id",1))).
Scan(&product)

宽松匹配

可以使用 baits.Loose() 方法,来指定忽略属性的覆盖,该方法使用 JsonPath 语法。

如下所示,忽略匹配 product.Price 属性:

batis.Query(`select * from products where id = #{id}`, batis.Param("id",1))).
Scan(batis.Loose(&product, "$.Price"))