Middle
Kas yra paruošti užklausos (prepared statements)?
sobes.tech AI
Atsakymas iš AI
Paruoštos užklausos yra mechanizmas darbui su duomenų bazėmis, kuriame SQL užklausa yra sukompiliuojama ir optimizuojama vieną kartą, o tada gali būti vykdoma daug kartų su skirtingais parametrais.
Privalumai:
- Padidintas našumas kartotinai iškviečiant tą pačią užklausą.
- Sauga — apsauga nuo SQL injekcijų, nes parametrai perduodami atskirai nuo užklausos teksto.
- Patogumas — parametrai automatiškai įterpiami, nereikia rankiniu būdu juos išvengti.
Go kalboje paruošta užklausa kuriama naudojant Prepare metodą iš *sql.DB arba *sql.Tx objekto:
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)
Šiuo būdu užklausa yra sukompiliuojama vieną kartą, o vėliau gali būti kviečiama daug kartų su skirtingais parametrais.