Middle
Czym są przygotowane zapytania (prepared statements)?
sobes.tech AI
Odpowiedź od AI
Przygotowane zapytania to mechanizm w pracy z bazami danych, w którym zapytanie SQL jest kompilowane i optymalizowane raz, a następnie może być wykonywane wielokrotnie z różnymi parametrami.
Zalety:
- Zwiększona wydajność przy wielokrotnych wywołaniach tego samego zapytania.
- Bezpieczeństwo — ochrona przed wstrzyknięciami SQL, ponieważ parametry są przekazywane oddzielnie od tekstu zapytania.
- Wygoda — parametry są automatycznie podstawiane, nie trzeba ręcznie uciekać wartości.
W Go przygotowane zapytanie tworzy się za pomocą metody Prepare obiektu *sql.DB lub *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)
W ten sposób zapytanie jest kompilowane raz, a potem można je wywołać wielokrotnie z różnymi parametrami.