Sobes.tech
Middle

Cosa sono le query preparate (prepared statements)?

sobes.tech AI

Risposta dell'AI

Le query preparate sono un meccanismo per lavorare con i database, in cui la query SQL viene compilata e ottimizzata una sola volta, e poi può essere eseguita più volte con parametri diversi.

Vantaggi:

  • Aumento delle prestazioni nelle chiamate ripetute alla stessa query.
  • Sicurezza — protezione contro le injection SQL, poiché i parametri vengono passati separatamente dal testo della query.
  • Comodità — i parametri vengono inseriti automaticamente, senza doverli sfuggire manualmente.

In Go, la query preparata viene creata tramite il metodo Prepare dell'oggetto *sql.DB o *sql.Tx:

stmt, err := db.Prepare("SELECT name FROM users WHERE id = ?")
if err != nil {
    log.Fatal(err)
}
defer stmt.Close()

var name string
err = stmt.QueryRow(1).Scan(&name)
if err != nil {
    log.Fatal(err)
}
fmt.Println(name)

In questo modo, la query viene compilata una sola volta, e poi può essere chiamata più volte con parametri diversi.