gdb的数据记录结果(Value)支持非常灵活的类型转换,并内置支持常用的数十种数据类型的转换。Result/Record的类型转换请查看后续 ORM高级特性 章节。

    Value类型是*gvar.Var类型的别名,因此可以使用gvar.Var数据类型的所有转换方法,具体请查看 泛型类型-gvar 章节

    使用示例:

    首先,数据表定义如下:

    1. # 商品表
    2. CREATE TABLE `goods` (
    3. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    4. `title` varchar(300) NOT NULL COMMENT '商品名称',
    5. `price` decimal(10,2) NOT NULL COMMENT '商品价格',
    6. ...
    7. PRIMARY KEY (`id`)
    8. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

    其次,数据表中的数据如下:

    1. id title price
    2. 1 IPhoneX 5999.99

    最后,示例代码如下:

    1. if r, err := g.Model("goods").FindOne(1); err == nil {
    2. fmt.Printf("goods id: %d\n", r["id"].Int())
    3. fmt.Printf("goods title: %s\n", r["title"].String())
    4. fmt.Printf("goods proce: %.2f\n", r["price"].Float32())
    5. } else {
    6. g.Log().Error(gctx.New(), err)
    7. }

    执行后,输出结果为:

    1. goods id: 1
    2. goods title: IPhoneX
    3. goods proce: 5999.99