Sobes.tech
Middle

O que são declarações preparadas (prepared statements)?

sobes.tech IA

Resposta da IA

As consultas preparadas são um mecanismo para trabalhar com bases de dados, no qual a consulta SQL é compilada e otimizada uma única vez, podendo depois ser executada várias vezes com diferentes parâmetros.

Vantagens:

  • Desempenho aumentado em chamadas repetidas à mesma consulta.
  • Segurança — proteção contra injeções SQL, pois os parâmetros são passados separadamente do texto da consulta.
  • Conveniência — os parâmetros são inseridos automaticamente, sem necessidade de escapar manualmente os valores.

Em Go, a consulta preparada é criada através do método Prepare do objeto *sql.DB ou *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)

Dessa forma, a consulta é compilada uma única vez, e depois pode ser chamada várias vezes com diferentes parâmetros.