透過反射呼叫可變參數函數進行SQL 掃描
使用Rows.Scan() 函數進行SQL 資料庫查詢時,有必要使用資料庫查詢時,有必要使用資料庫查詢反射來考慮它接受的可變數量的指標。這允許使用查詢結果中的資料動態填充切片。
使用反射動態掃描的步驟
使用反射呼叫Rows.Scan() 等可變參數函數,請依照下列步驟操作:
程式碼範例
以下程式碼片段示範如何使用反射動態掃描:
package main import ( "fmt" _ "github.com/lib/pq" "database/sql" ) func main() { db, _ := sql.Open("postgres", "connection_string") rows, _ := db.Query("SELECT * FROM my_table") columns, _ := rows.Columns() count := len(columns) values := make([]interface{}, count) valuePtrs := make([]interface{}, count) for rows.Next() { for i := range columns { valuePtrs[i] = &values[i] } rows.Scan(valuePtrs...) for i, col := range columns { val := values[i] b, ok := val.([]byte) var v interface{} if ok { v = string(b) } else { v = val } fmt.Println(col, v) } } }
透過實作此方法,您可以動態地用查詢結果填滿切片,而無需事先指定資料類型。
以上是如何在 Go 中使用反射動態呼叫 Variadic Rows.Scan()?的詳細內容。更多資訊請關注PHP中文網其他相關文章!