Dúvida sql JAVA

5 respostas
postgresqldatabasesqljava
S

Pessoal, estou com uma dificuldade, estou tentando passar para dentro do sql uma pesquisa por string, porém, ele só me retorna nulo.

public Object buscar(String objeto, String tipo) {
	PreparedStatement stmt = null;
	ResultSet rs = null;
	PontoAtendimento resultado = null;
	String sql = "select * from PontoAtendimento where ? = '?'";
	
	try {
		stmt = conn.prepareStatement(sql);
		stmt.setString(1, tipo);
		stmt.setString(2, objeto);

Alguém por gentileza consegue me ajudar?

5 Respostas

J

Cara, eu nunca vi ninguém operar dessa forma uma consulta!

O correto não seria algo assim:

String sql = select * from PontoAtendimento where umaColunaQuquer = ?;
stmt = conn.prepareStatement(sql);
stmt.setString(1, valorASerPesquisado);
S

E que esse método pode operar em base 2 colunas ramal_pontoAtendimento ou hostname_pontoAtendimento eu defino a coluna na servlet passando pelo tipo e depois o objeto o problema é: quando o SQL é executado, está retornando nulo, porém, se eu faço a busca com o msm SQL direto no query ele retorna o object numa boa

S

Do jeito que fez funciona só que eu teria que criar 2 métodos, 1 pra Hostname e um pra Ramal, queria fazer de forma “polimorfica” entre aspas pq não é totalmente polimorfica

J

tu colocou seu segundo parâmetro entre apóstrofos ‘?’, tenta remover os apóstrofos.

F

Tem diversas coisas estranhas. Primeiro, um método que retorna um objeto da classe Object é um método extremamente genérico. Você deveria especificar mais. Segundo: Todo objeto, enquanto não referencia ou instância de algo, é iniciado como nulo. Portanto, declarar qualquer coisa pela primeira vez “= null” é redundante.

Sobre sua dúvida:

Printa a String SQL antes de enviar e mostra aqui pra gente como tá ficando.

[]'s

Criado 27 de março de 2019
Ultima resposta 27 de mar. de 2019
Respostas 5
Participantes 3