Buscar pelo id dados dos produtos no banco de dados

8 respostas
programaçãojava
F

Bom caros nerds deste site estou desenvolvendo um sistema para concluir uma matéria da faculdade em linguagem java. Não possuo experiência então tudo que faço é pesquisando na net ok.

Bom mas a situação é a seguinte na tela de cadastro de produtos eu fiz uma tabela e o usuário iria adentrar com o código do produto e assim sendo o produto vai aparecer na tabela.

Assim sendo fiz o método abaixo dentro da daoproduto para retornar justamente todos os dados buscando pelo ID

public BeansProduto busProduto(BeansProduto mod) {//INSTANCIA PARA O BOTAO BUSCAR

conn.conexao();

conn.executaSql(" select * from produto where id_produto like’%" + mod.getPesquisar() + %’”);

try {

conn.rs.first();//filtra o primeiro resultado encontrado no banco

buscaNomeFornecedor(conn.rs.getInt(id_fornecedor));

mod.setIdProduto(conn.rs.getInt(id_produto));

mod.setNomeProduto(conn.rs.getString(nome_produto));

mod.setLote(conn.rs.getInt(lote_produto));

mod.setPrecoCompra(conn.rs.getFloat(preco_compra));

mod.setPrecoVenda(conn.rs.getFloat(preco_venda));

mod.setQtdProduto(conn.rs.getInt(quantidade));

mod.setFornecedorProduto(nomeFornecedor);
}

Este é o evento que arrumei no botão de pesquisar

private void jButtonPesquisarActionPerformed(java.awt.event.ActionEvent evt) {

mod.setPesquisar(jTextFieldPesquisar.getText()); // Seta o bato pesquisar

BeansProduto model = control.busProduto(mod); // instanticia a classe beans

//preenche a tabela

preencherTabela(select *from produto where id_produto like% + mod.getPesquisar() + %’”);

}

Contudo aparece a seguinte mensagem ao colocar o código de um produto e clicar no botão buscar:

Erro ao ExecutarSql:
ERRO: operador não existe: integer ~~ unknown
Dica: nenhum operador corresponde com o nome e o(s) tipo(s) de argumento(s) informados. Você precisa adicionar conversões de tipo explícitas.
Posição: 41

Bom seria este meu problema se você puder me auxiliar de alguma forma serei ficarei grato

8 Respostas

R

Olá, não se faz like no ID. Pra id seria: where id = 2; Oq vc está fazendo é uma busca por contains em id, não tem lógica.

F

Fiz desse jeito no botão

preencherTabela(“select *from produto where id_produto '%” + mod.getPesquisar() + “%’”);

E na SQl arrumei dessa forma

conn.executaSql(" select * from produto where id_produto ‘%" + mod.getPesquisar() + "%’");

Contudo apenas mudou o erro agora apresenta este:

Erro ao ExecutarSql:
ERRO: tipo “id_produto” não existe Posição:30

Ao pesquisar no campo pesquisar um numero e clicar no botão aparece este erro

Não sei oque fazer

S

conn.executaSql("select * from produto where id_produto = " + mod.getPesquisar());

F

Staroski você é o cara deu certo muito obrigado mesmo

S

Na verdade nosso colega @Rodrigo_Void já havia te passado a solução, só que você o ignorou. :frowning:

F

obrigado

J

Cuidado com a passagem de parâmetros direto na consulta do SQL.

R

Sim, do jeito que tá aparentemente suporta SQL Injection. O certo seria parametrizar com PreparedStatement.

Criado 22 de novembro de 2017
Ultima resposta 24 de nov. de 2017
Respostas 8
Participantes 4