Olá, sou principiante e estou com uma dúvida sobre uma consulta com um formulário que possui 3 campos sendo o primeiro pelo nome, o qual está funcionando com o comando LIKE, porém quando digito apenas um dos outros dois critérios, obtenho o retorno de todos os dados do BD e não apenas os relativos ao critério escolhido, no caso CPF ou PRODUTO.
Desculpe, segue o código:
private void ConsultarActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn;
conn = DriverManager.getConnection("jdbc:mysql://localhost/trocarefil","root","");
String query = "SELECT * from Clientes WHERE Nome LIKE ? or CPF = ? or Produto = ?";
PreparedStatement stmt;
stmt = conn.prepareStatement(query);
//Pega o texto digitado no campo de pesquisa Nome ou CPF ou Produto
stmt.setString(1,nome.getText()+'%');
stmt.setString(2,jTextField2.getText());
stmt.setString(3,jTextField3.getText());
ResultSet rs;
rs = stmt.executeQuery();
DefaultTableModel model;
model = (DefaultTableModel)jTable1.getModel();
model.setNumRows(1);
while (rs.next()){
model.addRow(
new Object[]{
rs.getString("Nome"),
rs.getString("Endereço"),
rs.getString("CPF"),
rs.getString("ClienteDesde"),
rs.getString("Produto"),
rs.getString("EmailCliente"),
rs.getString("TelefoneCliente"),
rs.getString("IdClientes"),
}
);
