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.