Sobes.tech
Middle

Mi azok a prepared statement-ek?

sobes.tech MI

Válasz az MI-től

Az előkészített lekérdezések (prepared statements) egy olyan mechanizmus az adatbázisok kezelésében, amelyben az SQL-lekérdezést egyszer fordítják le és optimalizálják, majd többször végrehajtható különböző paraméterekkel.

Előnyök:

  • Növelt teljesítmény ugyanazon lekérdezés többszöri hívásakor.
  • Biztonság — védelmet nyújt az SQL-injekciók ellen, mivel a paraméterek külön kerülnek átadásra a lekérdezés szövegétől.
  • Kényelem — a paraméterek automatikusan behelyettesítésre kerülnek, nem kell manuálisan escape-elni az értékeket.

Go-ban a készített lekérdezést a *sql.DB vagy *sql.Tx objektum Prepare metódusával hozzuk létre:

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)

Így a lekérdezés egyszer fordításra kerül, majd többször is meghívható különböző paraméterekkel.