Erro Syntax Mysql (SELECT)

Pessoal eu estou com om seguinte codigo para fazer uma busca no BD, mais esta dando erro de syntax.

Algum pode ajudar?

        try{
        Class.forName("com.mysql.jdbc.Driver");
        
        Connection conn;
        
        conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/champ","root","");
        
        String query = "SELECT * FROM Cad_Cliente (Razao, Nomefantasia, Cnpjoucpf, Cidade, Uf) WHERE(?,?,?,?,?)";
        
        PreparedStatement cmd;
        
        cmd = conn.prepareStatement(query);
        
        cmd.setString(1, jTextFieldRazaosocial.getText());
        cmd.setString(2, jTextFieldNomefantasia.getText());
        cmd.setString(3, jTextFieldCnpjoucpf.getText());
        cmd.setString(4, jTextFieldCidade.getText());
        cmd.setString(5, jTextFieldUf.getText());
        
        ResultSet rs;
        
        rs = cmd.executeQuery();
        
        while (rs.next()){
            System.out.println("Nome = " + rs.getString("Razao") + " " + rs.getString("Nomefantasia")+ " " + rs.getString("Cnpjoucpf")+ " " + rs.getString("Cidade")+ " " + rs.getString("Uf"));
        }
        
        } catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null, "Não foi possivel encontrar a classe.");
        } catch (SQLException ex){
            JOptionPane.showMessageDialog(null, "Ocorreu um erro de SQL. " + ex.getMessage());
        }
    }

Como teria que ficar na linha da “String query” para dar certo?

A SQL da linha 8:

String query = "SELECT * FROM Cad_Cliente (Razao, Nomefantasia, Cnpjoucpf, Cidade, Uf) WHERE(?,?,?,?,?)";

deveria ser assim para buscar quando todos os campos devem ser iguais ao registro no banco:

String query = "SELECT * FROM Cad_Cliente WHERE Razao=? and Nomefantasia=? and Cnpjoucpf=? and Cidade=? and Uf=?";

ou assim quando pelo menos um dos campos deve ser igual:

String query = "SELECT * FROM Cad_Cliente WHERE Razao=? or Nomefantasia=? or Cnpjoucpf=? or Cidade=? or Uf=?";

Vlw resolveu.

Cara na hora de consultar ele so acha se estiver o nome igual, ai eu botei o LIKE na syntax mais da erro de Syntax =/.

        try{
        Class.forName("com.mysql.jdbc.Driver");
        
        Connection conn;
        
        conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/champ","root","celularc75");
        
        String query = "SELECT * FROM Cad_Cliente WHERE Razao LIKE ? or Nomefantasia LIKE ? or Cpfoucnpj LIKE ? or Cidade LIKE ? or Uf LINE ?";
        
        PreparedStatement cmd;
        
        cmd = conn.prepareStatement(query);
        
        cmd.setString(1, "%"+jTextFieldRazaosocial.getText()+"%");
        cmd.setString(2, "%"+jTextFieldNomefantasia.getText()+"%");
        cmd.setString(3, "%"+jTextFieldCnpjoucpf.getText()+"%");
        cmd.setString(4, "%"+jTextFieldCidade.getText()+"%");
        cmd.setString(5, "%"+jTextFieldUf.getText()+"%");
        
        ResultSet rs;
        
        rs = cmd.executeQuery();
        
        DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
        jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        model.setNumRows(0);
        
        while (rs.next()){
            model.addRow(new Object[]{rs.getString("Codigo"),rs.getString("Razao"),rs.getString("Nomefantasia"),rs.getString("Cpfoucnpj"),rs.getString("Ie"),rs.getString("Endereco"),rs.getString("Complemento"),rs.getString("Bairro"),rs.getString("Cidade"),rs.getString("Uf"),rs.getString("Cep"),rs.getString("Telefone"),rs.getString("Responsavel"),rs.getString("Email"),rs.getString("Tipodeempresa"),rs.getString("Observacao")});
        }

Sem o like funciona perfeito, so que eu queria fazer com q a consulta foce mais facil so diginando nomes parecidos tmb.

Oque ta errado na syntax da query?

Foi um erro na hora de digitar mesmo… na SQL da linha 08 está escrito LINE. Substitui por esta linha que vai dar certo:

String query = "SELECT * FROM Cad_Cliente WHERE Razao LIKE ? or Nomefantasia LIKE ? or Cpfoucnpj LIKE ? or Cidade LIKE ? or Uf LIKE ?";

Cara nem reparei la… nao reparei na hora que postei aqui.

Essa ai passo igual ninja kk :lol:

Vlw.

Que nada, isso sempre acontece quando estamos mechendo demais com o mesmo código.

Só lembra de colocar para fechar a conexão, o PreparedStatement e o ResultSet, para liberar os recursos do banco.