Middle
Τι είναι οι προετοιμασμένες δηλώσεις (prepared statements);
sobes.tech AI
Απάντηση από AI
Οι προετοιμασμένες ερωτήσεις είναι ένας μηχανισμός για εργασία με βάσεις δεδομένων, όπου το ερώτημα SQL μεταγλωττίζεται και βελτιστοποιείται μία φορά, και στη συνέχεια μπορεί να εκτελείται πολλές φορές με διαφορετικές παραμέτρους.
Πλεονεκτήματα:
- Αυξημένη απόδοση σε επαναλαμβανόμενες κλήσεις της ίδιας ερώτησης.
- Ασφάλεια — προστασία από SQL injections, καθώς οι παράμετροι περνούν ξεχωριστά από το κείμενο της ερώτησης.
- Άνεση — οι παράμετροι εισάγονται αυτόματα, χωρίς να χρειάζεται να διαφύγουν χειροκίνητα οι τιμές.
Στη Go, η προετοιμασμένη ερώτηση δημιουργείται μέσω της μεθόδου Prepare του αντικειμένου *sql.DB ή *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)
Έτσι, η ερώτηση μεταγλωττίζεται μία φορά, και στη συνέχεια μπορεί να καλείται πολλές φορές με διαφορετικές παραμέτρους.