美文网首页
xorm - Rows 和 Iterate 的 使用

xorm - Rows 和 Iterate 的 使用

作者: Uzero | 来源:发表于2017-12-24 17:13 被阅读0次

    Rows 和 Iterate 都是迭代数据库记录

    Rows:相比Iterate更底层,更灵活

    Iterate:高级的Rows封装

    1、Rows 举例使用

    main函数中

    rows, err := engine.Where("id > ?", 2).Rows(new(Account))

    defer rows.Close()

    if err != nil {

        fmt.Println("err : ", err)

    }

    bean  := &Account{}

    // rows.Next() 返回一个bool,是否有下一个数据

    for rows.Next() {

        // Scan 扫描记录

        if err := rows.Scan(bean) ; err != nil {

            fmt.Println("err ", err)

        } else {

            fmt.Printf("%#v\n", bean)

        }

    }

    Rows的使用(推荐)

    2、Iterate 举例使用

    // main函数外

    var echo = func (idx int, bean interface{}) error {

        fmt.Printf("%d : %#v \n", idx, bean.(*Account))

        return nil

    }

    // mian函数内

    engine.Iterate(new(Account), echo)


    Iterate的使用

    Iterate的扩展

    engine.Cols("name").Iterate(new(Account), echo)  // 查询特定字段

    engine.Omit("name").Iterate(new(Account), echo)  // 排除特定字段

    engine.Limit(3,2).Iterate(new(Account), echo)        // 查询结果偏移

    相关文章

      网友评论

          本文标题:xorm - Rows 和 Iterate 的 使用

          本文链接:https://www.haomeiwen.com/subject/cuehgxtx.html