Estou com um problema ao buscar um determinado produto na tabela. Ao inserir o nome de um produto, exemplo: " feijão" e o sistema tiver mais de um tipo de feijão, ele vai retornar os produtos com o mesmo nome. Veja a seguir.
Reparem que nessa tabela existe 2 tipos de produto.
Quando eu pesquiso somente o nome “feijão” ele deveria retornar os 2 produtos associados a feijão, porém, ele retorna dois nomes iguais.
Método de Buscar:
public ArrayList<Produto> pesquisarProduto(String produto) {
try {
Produto produtos = new Produto();
String sql = "select * from produtos where nome LIKE ? ";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, "%" + produto + "%");
ResultSet resultado = stmt.executeQuery();
ArrayList<Produto> prod = new ArrayList<>();
while (resultado.next()) {
produtos.setCodigo(resultado.getInt("codigo"));
produtos.setNome(resultado.getString("nome"));
produtos.setPreco(resultado.getDouble("preco"));
produtos.setQtd(resultado.getInt("qtd"));
prod.add(produtos);
}
con.close();
return prod;
} catch (SQLException ex) {
return null;
}
}
Método de busca da interface:
public void buscarPorNome(String nome) {
if(!txtBuscar.getText().equals("")){
ProdutoDAO dados = new ProdutoDAO();
DefaultTableModel modelo = new DefaultTableModel();
modelo.addColumn("Código");
modelo.addColumn("Nome");
modelo.addColumn("Preço");
modelo.addColumn("Quantidade");
for (Produto produto : dados.pesquisarProduto(nome)) {
modelo.addRow(new Object[]{
produto.getCodigo(),
produto.getNome(),
produto.getPreco(),
produto.getQtd(),});
}
tabelaProduto.setModel(modelo);
}else{
JOptionPane.showMessageDialog(null, "Campo Vazio");
}
}
Ação do botão buscar:
private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
buscarPorNome(txtBuscar.getText());
}