Sobes.tech
Middle

Wat zijn prepared statements?

sobes.tech AI

Antwoord van AI

Voorbereide queries zijn een mechanisme voor werken met databases, waarbij de SQL-query één keer wordt gecompileerd en geoptimaliseerd, en vervolgens meerdere keren kan worden uitgevoerd met verschillende parameters.

Voordelen:

  • Verhoogde prestaties bij herhaalde oproepen van dezelfde query.
  • Veiligheid — bescherming tegen SQL-injecties, omdat parameters apart worden doorgegeven van de query-tekst.
  • Gemak — parameters worden automatisch ingevuld, zonder dat waarden handmatig hoeven te worden geëscaped.

In Go wordt de voorbereide query gemaakt via de methode Prepare van het object *sql.DB of *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)

Op deze manier wordt de query één keer gecompileerd, en kan vervolgens meerdere keren worden aangeroepen met verschillende parameters.