Criar uma query que recebe paramentros sem o prepared statment é gambiarra?

0 respostas
extreme_z3r0

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.
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();
		}

Grato.
Gabriel.

Criado 25 de outubro de 2008
Respostas 0
Participantes 1