Ajuda Inserir registros no Mysql [RESOLVIDO]

2 respostas
joaolenosi

Aqui é a minha classe que realiza a conexao com o banco.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package banco;

    import java.sql.*;  
    import javax.swing.*;  
      
    /** 
    * @author Joao Leno 
    */  
    public class ConexaoMysql {  
         
       final private String driver  = "org.gjt.mm.mysql.Driver"; 
       final private String url     = "jdbc:mysql://localhost:3306/android"; //
       final private String usuario = "root"; 
       final private String senha   = "terra123";         
      
       private static Connection conexao;  
       private static Statement statement;  
       private static ResultSet resultSet; 


       
        private void inicializarConexoes() {
            try {
                Class.forName(driver);  
                conexao = DriverManager.getConnection(url, usuario, senha);
                statement = conexao.createStatement();
                JOptionPane.showMessageDialog(null, "Conexão realizada com sucesso.");  
             } 
             catch (SQLException | ClassNotFoundException ex) {
             }
        }
        
        public static Connection getConexao() {
            return conexao;
        }
        
        public ConexaoMysql(){
            inicializarConexoes();
        }
         
     /*  public boolean conecta(){  
         boolean result = true;    
          try{  
               Class.forName(driver);  
               conexao = DriverManager.getConnection(url, usuario, senha);  
               JOptionPane.showMessageDialog(null, "Conexão realizada com sucesso.");  
          }  
          catch(ClassNotFoundException Driver){  
               JOptionPane.showMessageDialog(null, "Driver não localizado = "+Driver);  
               result = false;  
          }  
          catch(SQLException Fonte){  
               JOptionPane.showMessageDialog(null, "Erro na conexao com a fonte de dados = "+Fonte);  
               result = false;  
          }  
          return result;  
       } */
      
       
        public static void executaQuery(String sql) {  
            try {  
                statement = conexao.createStatement();  
                statement.executeUpdate(sql);  
                statement.close();  
                System.out.println("Incluído com sucesso!");
            } catch(SQLException e) {  
                JOptionPane.showMessageDialog(null,"Falha ao incluir");   
            }  
            finally { 
                //connApollo.close();
            }  
        }  

    }

No evento de um botão, eu possuo o seguinte código:

String sql = "INSERT INTO usuario values ('"+tf_codigo.getText()+"','"+tf_nome.getText().toUpperCase()+"');";
              System.out.println("sql = "+sql);
              ConexaoMysql.executaQuery(sql);
              JOptionPane.showMessageDialog(null,"Gravado");

Porem ele estar dando um erro

sql = INSERT INTO usuario values ('003','VCXC');
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at banco.ConexaoMysql.executaQuery(ConexaoMysql.java:77)
	at cadastro.Usuario.jButton1ActionPerformed(Usuario.java:95)
	at cadastro.Usuario.access$300(Usuario.java:16)
	at cadastro.Usuario$3.actionPerformed(Usuario.java:57)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)

2 Respostas

joaolenosi

Resolvi, o problema é que eu não tava chamando a conecao;

ConexaoMysql con = new ConexaoMysql(); con.getConexao();

Como ficaria esse metódo “executaQuery” usando o preparedStatement ?

Marcelo_de_Andrade

Usando preparedStatement seria algo mais ou menos assim:

PreparedStatement pst = 
			(PreparedStatement) conexao.prepareStatement("INSERT INTO contato (nome) VALUES (?)");
			pst.setString	(1, nome);
			pst.executeUpdate();
Criado 12 de dezembro de 2012
Ultima resposta 12 de dez. de 2012
Respostas 2
Participantes 2