首页 > 解决方案 > 从行中获取sql行

问题描述

我如何在 Go*sql.Rows中使用一种解析(扫描)方法?*sql.Row

解析(扫描)方法使用一个代码解析一行

...
row := r.stmOne.QueryRow(id)
rows, err := r.stmOther.Query(ids, params)
parseRow(row, &item)
for rows.Next(){
    parseRows(rows, &item)
}
...

func parseRows(row *sql.Rows, item *typeItem) error {
    err := row.Scan(....) /// same
}

func parseRow(row *sql.Row, item *typeItem) error {
    err := row.Scan(....) /// same
}

标签: sqlgocopyrowrows

解决方案


type RowScanner interface {
    Scan(dest ...interface{}) error
}

func scanRowIntoItem(row RowScanner, item *typeItem) error {
    err := row.Scan(...)
}
row := r.stmOne.QueryRow(id)
rows, err := r.stmOther.Query(ids, params)
scanRowIntoItem(row, &item)
for rows.Next(){
    scanRowIntoItem(rows, &item)
}

推荐阅读