Назад к вопросам
Middle
3
Что такое подготовленные запросы (prepared statements)?
Компании, где спрашивали
Япоки
Ответ от нейросети
sobes.tech AI
Подготовленные запросы (prepared statements) — это механизм в работе с базами данных, при котором SQL-запрос компилируется и оптимизируется один раз, а затем может выполняться многократно с разными параметрами.
Преимущества:
- Повышенная производительность при повторных вызовах одного и того же запроса.
- Безопасность — защита от SQL-инъекций, так как параметры передаются отдельно от текста запроса.
- Удобство — параметры подставляются автоматически, не нужно вручную экранировать значения.
В 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)
Таким образом, запрос компилируется один раз, а потом можно многократно вызывать с разными параметрами.