1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| func getProducts(ctx context.Context, db *sql.DB) ([]Product, error) { rows, err := db.QueryContext(ctx, "SELECT * FROM products") if err != nil { return nil, err } defer rows.Close()
var products []Product for rows.Next() { var p Product if err := rows.Scan(&p.ID, &p.Name, &p.Price); err != nil { return nil, err } products = append(products, p) } if err := rows.Err(); err != nil { return nil, fmt.Errorf("iterate products: %w", err) } return products, nil }
func getOrders(ctx context.Context, db *sqlx.DB) ([]Order, error) { rows, err := db.QueryxContext(ctx, "SELECT * FROM orders") if err != nil { return nil, err } defer rows.Close()
var orders []Order for rows.Next() { var o Order if err := rows.StructScan(&o); err != nil { return nil, err } orders = append(orders, o) } if err := rows.Err(); err != nil { return nil, fmt.Errorf("iterate orders: %w", err) } return orders, nil }
|