Olá pessoal, estou com um problema ao inserir dados no Mysql usando ActionListener. Quando eu compilo o programa ele roda normalmente mas quando eu clico no botão para ele
inserir os dados dos campos do formulário no Mysql ele gera o seguinte erro:
public class cadastro extends JFrame {
static Connection conn =null;
String nome;
int rg;
int cpf;
int tel;
String end;
static ResultSet rs =null;
static String status = null;
private JPanel pnlCentro;
private JPanel pnlNorte;
private JPanel pnlSul;
private JButton btnAdicionar;
private JButton btnAlterar;
private JButton btnCadProd;
private static JButton btnCadCl;
private JButton btnExcluir;
private JButton btnAnt;
private JButton btnProx;
private JButton btnAvanc;
private JButton btnCancel;
private JLabel lblCodProd;
private JLabel lblDescProd;
private JLabel lblTypProd;
private JLabel lblPrcProd;
private JLabel lblNmCl;
private JLabel lblRgCl;
private JLabel lblCpfCl;
private JLabel lblTelCl;
private JLabel lblEndCl;
private JTextField txtCodProd;
private JTextField txtDescProd;
private JTextField txtTypProd;
private JTextField txtPrcProd;
private static JTextField txtNmCl;
private static JTextField txtRgCl;
private static JTextField txtCpfCl;
private static JTextField txtTelCl;
private static JTextField txtEndCl;
private JLabel lblRot1;
private JLabel lblRot2;
private Object request;
public static void main (String args[]){
cadastro frame = new cadastro ();
frame.setVisible(true);
}
public cadastro(){
super();
setBounds(500,500,728,500);
setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
try {
jbInit();
teste();
} catch (Throwable e) {
JOptionPane.showMessageDialog(null, e.getMessage(), "Erro", JOptionPane.ERROR_MESSAGE);
}
}
private void jbInit() throws Exception{
pnlCentro = new JPanel();
pnlNorte = new JPanel();
pnlSul = new JPanel();
btnAlterar = new JButton();
btnCadProd =new JButton();
btnCadCl = new JButton();
btnExcluir =new JButton();
btnAdicionar = new JButton();
btnAnt = new JButton();
btnProx = new JButton();
btnCancel = new JButton();
btnAvanc = new JButton();
lblCodProd = new JLabel();
lblDescProd = new JLabel();
lblTypProd = new JLabel();
lblPrcProd = new JLabel();
lblNmCl= new JLabel();
lblRgCl= new JLabel();
lblCpfCl= new JLabel();
lblTelCl= new JLabel();
lblEndCl = new JLabel();
txtCodProd = new JTextField();
txtDescProd = new JTextField();
txtTypProd = new JTextField();
txtPrcProd = new JTextField();
txtNmCl = new JTextField();
txtRgCl = new JTextField();
txtCpfCl = new JTextField();
txtTelCl = new JTextField();
txtEndCl = new JTextField();
lblRot1 = new JLabel();
lblRot2 = new JLabel();
getContentPane().setLayout (new BorderLayout());
setTitle("Assistente 5 estrelas");
getContentPane().add(pnlCentro, BorderLayout.CENTER);
pnlCentro.setLayout(null);
//produto
pnlCentro.add(lblCodProd);
lblCodProd.setText("Código");
lblCodProd.setBounds(20, 50, 66, 16);
pnlCentro.add(lblDescProd);
lblDescProd.setText("Descrição");
lblDescProd.setBounds(20, 100, 66, 16);
pnlCentro.add(lblTypProd);
lblTypProd.setText("Tipo");
lblTypProd.setBounds(20, 150, 66, 16);
pnlCentro.add(lblPrcProd);
lblPrcProd.setText("Preço");
lblPrcProd.setBounds(20, 200, 66, 16);
pnlCentro.add(txtCodProd);
txtCodProd.setBounds(80, 50, 200, 20);
txtCodProd.setText("");
pnlCentro.add(txtDescProd);
txtDescProd.setBounds(80, 100,200, 20);
txtDescProd.setText("");
pnlCentro.add(txtTypProd);
txtTypProd.setBounds(80, 150, 200, 20);
txtTypProd.setText("");
pnlCentro.add(txtPrcProd);
txtPrcProd.setBounds(80, 200, 200, 20);
txtPrcProd.setText("");
//cliente
pnlCentro.add(lblNmCl);
lblNmCl.setText("Nome");
lblNmCl.setBounds(360, 50, 66, 16);
pnlCentro.add(lblRgCl);
lblRgCl.setText("RG");
lblRgCl.setBounds(360, 100, 66, 16);
pnlCentro.add(lblCpfCl);
lblCpfCl.setText("CPF ");
lblCpfCl.setBounds(360, 150, 66, 16);
pnlCentro.add(lblTelCl);
lblTelCl.setText("Telefone");
lblTelCl.setBounds(360, 200, 66, 16);
pnlCentro.add(lblEndCl);
lblEndCl.setText("Endereço");
lblEndCl.setBounds(360, 250, 66, 16);
pnlCentro.add(txtNmCl);
txtNmCl.setBounds(400, 50, 200, 20);
txtNmCl.setText("");
pnlCentro.add(txtRgCl);
txtRgCl.setBounds(400, 100, 200, 20);
txtRgCl.setText("");
pnlCentro.add(txtCpfCl);
txtCpfCl.setBounds(400, 150, 200, 20);
txtCpfCl.setText("");
pnlCentro.add(txtTelCl);
txtTelCl.setBounds(430, 200, 200, 20);
txtTelCl.setText("");
pnlCentro.add(txtEndCl);
txtEndCl.setBounds(430, 250, 200, 20);
txtEndCl.setText("");
getContentPane().add(pnlNorte, BorderLayout.NORTH);
pnlNorte.setPreferredSize(new Dimension(0, 50));
pnlNorte.add(btnExcluir);
btnExcluir.setText("excluir");
btnExcluir.setBounds(241, 10, 115, 25);
btnExcluir.setIcon (new ImageIcon ("lixeira.png"));
pnlNorte.add(btnAnt);
btnAnt.setBounds(241, 10, 115, 25);
btnAnt.setIcon (new ImageIcon ("ant1.png"));
pnlNorte.add(btnProx);
btnProx.setBounds(241, 10, 115, 25);
btnProx.setIcon(new ImageIcon("prox.png"));
pnlNorte.add(btnCancel);
btnCancel.setBounds(241, 10, 115, 25);
btnCancel.setIcon(new ImageIcon("cancel.png"));
btnCancel.setText("cancelar");
pnlNorte.add(btnAlterar);
btnAlterar.setBounds(241, 10, 115, 25);
btnAlterar.setText("Alterar");
pnlNorte.add(btnAdicionar);
btnAdicionar.setBounds(241, 10, 115, 25);
btnAdicionar.setText("Adicionar");
getContentPane().add(pnlSul, BorderLayout.SOUTH);
pnlSul.setPreferredSize(new Dimension(400, 50));
pnlSul.add(btnCadProd);
btnCadProd.setText("cadastrar produto");
btnCadProd.setBounds(20, 50, 115, 25);
pnlSul.add(btnCadCl);
btnCadCl.setText("cadastrar cliente");
btnCadCl.setBounds(5, 30, 115, 25);
btnCadCl.addActionListener(new BtnCadClActionListener());
pnlSul.add(btnAvanc);
btnAvanc.setText("avançar");
btnAvanc.setBounds(40, 30, 115, 25);
}
public static Connection getConnection(){
// base de dados é "javabd2"
String url = "jdbc:mysql://127.0.0.1/javabd2";
String usuario = "root";
String senha = null;
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, usuario, senha);
java.sql.Statement select = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs = select.executeQuery("SELECT * FROM cliente");
if (rs == null){
System.out.println("rs está nulo");
}else{
System.out.println("rs está cheio");
}
if (rs.next()){
System.out.println(" há dados");
} else{
System.out.println("não há dados");
}
return conn;
}
catch(SQLException ex){
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
return null;
}
catch(Exception e){
System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
return null;
}
}
public void teste(){
cadastro.getConnection();
System.out.println("conexão aberta");
}
private class BtnCadClActionListener implements ActionListener {
public void actionPerformed(ActionEvent e){
try {
String nome = txtNmCl.getText();
String end = txtEndCl.getText();
int rg =Integer.parseInt(txtNmCl.getText());
int cpf =Integer.parseInt(txtCpfCl.getText());
int tel = Integer.parseInt(txtTelCl.getText());
java.sql.Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String query = "INSERT INTO cliente (cl_nome, cl_rg, cl_cpf, cl_tel, cl_end) " +
"VALUES('"+nome+"','"+rg+"','"+cpf+"','"+tel+"','"+end+"')";
int vs = stmt.executeUpdate(query);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
return;
}
}
Se alguém puder me dar uma ajuda ficarei imensamente grato.
Aguardo retorno