Olá pessoal, estou trabalhando em um projeto e estou com a seguinte duvida…
Estou montando um metodo que exlui valores de uma tabela baseado em 2 parametros recebidos:
idGa
idGb
E caso o metodo receba um dos 2 parametros negativos ele exclui tudo que encontrar do outro parametro.
Se eu montar a string SQL sem utilizar o prepared Statement é gambiarra? Por que?
O codigo é esse.
[code] String strComandoSQL;
// Se idGa for negativo ele exclui tudo que tenha o valor de idGb
if (idGa < 0) {
strComandoSQL = "DELETE FROM tbContatos WHERE "
+ "tbGrupos_idGrupoA = " + String.valueOf(idGb) + " OR "
+ "tbGrupos_idGrupoB = " + String.valueOf(idGb);
}
// Se idGb for negativo ele exclui tudo que tenha o valor de idGa
else if (idGb < 0) {
strComandoSQL = "DELETE FROM tbContatos WHERE "
+ "tbGrupos_idGrupoA = " + String.valueOf(idGa) + " OR "
+ "tbGrupos_idGrupoB = " + String.valueOf(idGa);
}
// Se nenhum dos 2 parametros for negativo ele gera uma string
// para deletar apenas quem for compativel com os 2 paramentros.
else {
strComandoSQL = "DELETE FROM tbContatos WHERE "
+ "tbGrupos_idGrupoA = " + String.valueOf(idGa) + " AND "
+ "tbGrupos_idGrupoB = " + String.valueOf(idGb);
}
try {
//Cria o stm!
stmComandoSQL = conConexaoComBanco.createStatement();
//Executa o stm.
stmComandoSQL.execute(strComandoSQL);
} catch (Exception e) {
e.printStackTrace();
}[/code]
Grato.
Gabriel.