Sobes.tech
Назад к вопросам
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)

Таким образом, запрос компилируется один раз, а потом можно многократно вызывать с разными параметрами.