Esta dando o seguinte erro :
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘LIKE ‘%%’’ at line 1
O codigo é o seguinte da classe FornecedoresControl.java do pacote controle :
package SistemaJava.control;
import SistemaJava.AcessoBD.AcessoMySql;
import SistemaJava.model.Fornecedores;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Marcelo
*/
public class FornecedoresControl {
public static final int PROCURA_POR_CODIGO = 1;
public static final int PROCURA_POR_NOME = 2;
public static final int PROCURA_POR_CIDADE = 3;
public static final int PROCURA_POR_RUA = 4;
PreparedStatement pstm;
ResultSet rs;
public List<Fornecedores> localizaFornecedor(String texto, int tipo){
AcessoMySql mySql = new AcessoMySql();
String localizaFornecedor;
List<Fornecedores> listaFornecedores = new ArrayList();
switch (tipo){
case 1:
localizaFornecedor = "forCodigo LIKE ?";
break;
case 2:
localizaFornecedor = "forNome LIKE ?";
break;
case 3:
localizaFornecedor = "forCidade LIKE ?";
break;
case 4:
localizaFornecedor = "forRua LIKE ?";
break;
default:
localizaFornecedor = "forCodigo LIKE ?";
break;
}
try{
pstm = mySql.conectar().prepareStatement("SELECT * FROM fornecedores"+
"WHERE" + localizaFornecedor);
pstm.setString(1, "%" + texto + "%");
rs = pstm.executeQuery();
while(rs.next()){
Fornecedores fornecedor = new Fornecedores();
fornecedor.setForCodigo(rs.getInt("forCodigo"));
fornecedor.setForNome(rs.getString("forNome"));
fornecedor.setForCidade(rs.getString("forCidade"));
fornecedor.setForEstado(rs.getString("forEstado"));
fornecedor.setForNumero(rs.getString("forNumero"));
fornecedor.setForCnpj(rs.getString("forCnpj"));
fornecedor.setForRua(rs.getString("forRua"));
listaFornecedores.add(fornecedor);
}
mySql.desconectar();
}
catch(SQLException e){
e.printStackTrace();
}
return listaFornecedores;
}
}
Segue o código da Classe frmLocalizarFornecedor do pacote visão:
package SistemaJava.view;
import SistemaJava.control.FornecedoresControl;
import SistemaJava.model.Fornecedores;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Marcelo
*/
public class frmLocalizarFornecedor extends javax.swing.JDialog {
/** Creates new form frmLocalizarFornecedor */
public frmLocalizarFornecedor(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
}
/** This metho
*
* *
*
*
*
*
*
* d is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
tfPesquisa = new javax.swing.JTextField();
cbPesquisa = new javax.swing.JComboBox();
jLabel2 = new javax.swing.JLabel();
btPesquisa = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
tbFornecedores = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Localizar Fornecedores");
jLabel1.setText("Procurar:");
cbPesquisa.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Código", "Nome", "Cidade", "Rua" }));
jLabel2.setText("Por:");
btPesquisa.setText("Pesquisar");
btPesquisa.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btPesquisaActionPerformed(evt);
}
});
tbFornecedores.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Código", "Nome", "Cidade", "Estado", "Rua", "Numero", "Fornecedor"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, true, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
jScrollPane1.setViewportView(tbFornecedores);
jButton1.setText("OK");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("Cancel");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(tfPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, 212, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel2)
.addGroup(layout.createSequentialGroup()
.addComponent(cbPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
.addComponent(btPesquisa))))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 375, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addGap(155, 155, 155)
.addComponent(jButton1)
.addGap(34, 34, 34)
.addComponent(jButton2)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tfPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cbPesquisa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btPesquisa))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void btPesquisaActionPerformed(java.awt.event.ActionEvent evt) {
listarFornecedores();
}
public int forCodigo = 0;
public String forNome = "";
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (tbFornecedores.getSelectedRow()>=0){
forCodigo = listaFornecedores.get(tbFornecedores.getSelectedRow()).getForCodigo();
forNome = listaFornecedores.get(tbFornecedores.getSelectedRow()).getForNome();
frmProdutos.importaFornecedor(forCodigo, forNome);
this.dispose();
}else{
JOptionPane.showMessageDialog(this, "Selecione um Fornecedor!");
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
final frmLocalizarFornecedor dialog = new frmLocalizarFornecedor(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
dialog.dispose();
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btPesquisa;
private javax.swing.JComboBox cbPesquisa;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable tbFornecedores;
private javax.swing.JTextField tfPesquisa;
// End of variables declaration
DefaultTableModel tmFornecedores;
List<Fornecedores> listaFornecedores;
private void listarFornecedores() {
FornecedoresControl fornecedoresControl = new FornecedoresControl();
tmFornecedores = (DefaultTableModel) tbFornecedores.getModel();
while (tmFornecedores.getRowCount()>0){
tmFornecedores.removeRow(0);
}
listaFornecedores = fornecedoresControl.localizaFornecedor(
tfPesquisa.getText().trim(),
cbPesquisa.getSelectedIndex()+1);
if(listaFornecedores.isEmpty()){
JOptionPane.showMessageDialog(this, "Nenhum Fornecedor encontrado!");
}
for(int i=0; i<listaFornecedores.size();i++){
tmFornecedores.addRow(new String[7]);
tmFornecedores.setValueAt(listaFornecedores.get(i).getForCodigo(), i, 0);
tmFornecedores.setValueAt(listaFornecedores.get(i).getForNome(), i, 1);
tmFornecedores.setValueAt(listaFornecedores.get(i).getForCidade(), i, 2);
tmFornecedores.setValueAt(listaFornecedores.get(i).getForEstado(), i, 3);
tmFornecedores.setValueAt(listaFornecedores.get(i).getForRua(), i, 4);
tmFornecedores.setValueAt(listaFornecedores.get(i).getForNumero(), i, 5);
tmFornecedores.setValueAt(listaFornecedores.get(i).getForCnpj(), i, 6);
}
}
}
