Junior — Middle
Qual é a utilização de placeholders em consultas SQL e qual é o seu papel?
sobes.tech IA
Resposta da IA
Os placeholders em consultas SQL são símbolos ou marcas especiais que são substituídos por valores reais de parâmetros durante a execução da consulta. Em Go (Golang), ao trabalhar com bancos de dados através do pacote database/sql, os placeholders são usados para inserir valores de forma segura nas consultas.
Principais funções dos placeholders:
- Proteção contra injeções SQL. Em vez de concatenar strings com parâmetros, os valores são passados separadamente, prevenindo a inserção de código malicioso.
- Melhoria na legibilidade e facilidade do código. As consultas permanecem como modelos, e os parâmetros são passados separadamente.
- Otimização do trabalho com o banco de dados. Alguns SGBDs podem armazenar em cache os planos de consulta com placeholders.
Em Go, os placeholders geralmente são indicados pelo símbolo ? (por exemplo, para MySQL) ou $1, $2 (por exemplo, para PostgreSQL). Exemplo de uso:
import (
"database/sql"
_ "github.com/lib/pq"
)
func getUserByID(db *sql.DB, id int) (*User, error) {
row := db.QueryRow("SELECT id, name FROM users WHERE id = $1", id)
var user User
err := row.Scan(&user.ID, &user.Name)
if err != nil {
return nil, err
}
return &user, nil
}
Aqui, $1 é um placeholder que será substituído de forma segura pelo valor de id.
Dessa forma, os placeholders garantem segurança e conveniência ao trabalhar com consultas SQL dinâmicas.