Erro ao inserir dados no bd -->> Exception in thread "main" java.lang.NullPointerException

2 respostas
B

bom dia
estou com um problema em uma classe para inserir dados em banco de dados… no caso o banco usado é mysql

onde tenho a minha classe de conexão

package exercicio2;
		import java.sql.*;

			public class Conexao {
				
			public static String status = "";	
			public static Connection getConnection(){
					Connection con = null;
					
				try{
					Class.forName("com.mysql.jdbc.Driver").newInstance();
					String url = "jdbc:mysql://localhost/loja?user=root&password=root";
					con = DriverManager.getConnection(url);
						
					status= "Conexão Aberta ! ";
				    } catch (SQLException e ) {
			    	status = e.getMessage();
				    } catch (ClassNotFoundException e){
			    	status= e.getMessage();
				    } catch  (Exception e){
			    	status= e.getMessage();
			    } 
					    
					return con;
		    }

}

e também tenho a minha classe Alunos

package exercicio2;

		//import java.sql.Connection;
		//import java.sql.ResultSet;
		//import java.sql.SQLException;
		//import java.sql.Statement;
		import java.sql.*;

			public class Alunos {
	
				private int idaluno = 0;
				private String nome = "";
				private String endereco = "";
				private String cep = "";
				private String cidade = "";
				private String estado = "";
				private String pais = "";
				String status = "";
	
					public int getidaluno(){
						return idaluno;
					}
					public void setIdaluno(int idaluno){
						this.idaluno = idaluno;
					}
					
					
					public String getnome() {
						return nome;
					}
					public void setnome(String nome) {
						this.nome = nome;
					}
					
					
					public String getendereco(){
						return endereco;
					}
					public void setendereco (String endereco){
						this.endereco = endereco;
					}
				
					
					public String getcep(){
						return cep;
					}
					public void setcep(String cep){
						this.cep = cep;
					}
					
					
					public String getcidade(){
						return cidade;
					}
					public void setcidade(String cidade){
						this.cidade = cidade;
					}
					
					
					public String getestado(){
						return estado;
					}
					public void setestado(String estado){
						this.estado = estado;
					}
					
					
					public String pais(){
						return pais;
					}
					public void setpais(String pais){
						this.pais = pais;
					}
					
					
					public String getstatus(){
						return status;
					}
					
	
	
	// metodo incluir 
	
	  public void incluir(){
		  
		    String query = "";
		    query += " insert into alunos(nome, endereco, cep, cidade, estado, pais)";
		    query += "values('"+nome+"','"+endereco+"','"+cep+"','"+cidade+"','"+estado+"','"+pais+"')";
		    Connection cn = Conexao.getConnection();
		    try{
		    	Statement st = cn.createStatement();
		      st.executeUpdate(query);
		      status = "Incluido com sucesso!";
		    }catch(SQLException e){
		      status = e.getMessage();
		    }
		  }

	  
	  //metodo alterar 
	  
	 
	  public void alterar(){
		
		    String query = "";
		    query += " update alunos ";
		    query += " set nome = '" + nome + "', ";
		    query += " endereco = '" + endereco + "', ";
		    query += " cep = '" + cep + "', ";
		    query += " cidade = '" + cidade + "', ";
		    query += " estado = '" + estado + "', ";
		    query += " pais = '" + pais + "' ";
		    query += " where idaluno = " + idaluno;
		    Connection on = Conexao.getConnection();
		    try{
		      Statement st = on.createStatement();
		      st.executeUpdate(query);
		      status = "Alterado com sucesso!";
		    }catch(SQLException e){
		      status = e.getMessage();
		    }
		  }
		  

	//metodo excluir 	  
		  public void excluir(){
		
		    String query = "";
		    query += " delete from alunos ";
		    query += " where idaluno = " + idaluno;
		    Connection on = Conexao.getConnection();
		    try{
		      Statement st = on.createStatement();
		      st.executeUpdate(query);
		      status = "Excluido com sucesso!";
		    }catch(SQLException e){
		      status = e.getMessage();
		    }    
		  }
		  
		  
		  
		  // metodo de busca
		  
		  
		 
		  public void buscar(){
		  
		    String query = "";
		    query += " select nome, endereco, cep, cidade, estado, pais from alunos ";
		    query += " where idaluno = " + idaluno;
		    Connection on = Conexao.getConnection();
		    try{
		      Statement st = on.createStatement();
		      ResultSet rs = st.executeQuery(query);
		      if (rs.next()){
		        nome = rs.getString("nome");
		        endereco = rs.getString("endereco");
		        cep = rs.getString("cep");
		        cidade = rs.getString("cidade");
		        estado = rs.getString("estado");
		        pais = rs.getString("pais");
		        status = "Localizado com sucesso!";
		      }
		      else
		      {
		        nome = "";
		        endereco = "";
		        cep = "";
		        cidade = "";
		        estado = "";
		        pais = "";
		        status = "Nao foi localizado!";
		      }
		    }catch(SQLException e){
		      status = e.getMessage();
		    } 
		  }
		  
		  
}

e tenho a classe IncluirAluno

package exercicio2;



public class IncluirAluno {


	
	public static void main(String[] args) {
		
	    Alunos c = new Alunos();
	    c.setIdaluno(2);
	    c.setnome("Rodolfo Leao");
	    c.setendereco("av paracatu 124");
	    c.setcep("38700-000");
	    c.setcidade("Patos de Minas");
	    c.setestado("SP");
	    c.setpais("Argentina");
	    c.incluir();
	    System.out.println(c.getstatus());
	
	}

}

O meu problema é: quando vou executar a minha classe IncluirAluno, o eclipse que estou usando na oportunidade me retorna o
seguinte erro:

Exception in thread main java.lang.NullPointerException

at exercicio2.Alunos.incluir(Alunos.java:91)

at exercicio2.IncluirAluno.main(IncluirAluno.java:19)

onde (Alunos.java:91) ---->> Statement st = cn.createStatement();
(IncluirAluno.java:19)---->>c.incluir();

alguem saberia me informar o porque do erro ???

att
Breno Cristovão

2 Respostas

B

bom dia !!

caros… consegui resolver o problema…

solução… entrei no eclipse e verifiquei que a minha conexão não estava reconhecendo meu arquivo conector que no caso é mysql-connector-java-5.0.3-bin.jar
percebendo isso…fui identificar ele no eclipse… onde vc vai em propriedades do projeto em questão/ Java Build Path/Add External JARs e localiza o arquivo conectar que tem estava salvo em minha maquino diretorio: C:\java\JRE\lib\ext

Após procedimento consegui fazer a conexão e inserir no meu bd !!!

obrigado de qualquer forma !!

att
Breno Cristovão

M

Olá Breno,

O driver não precisa estar necessariamente dentro da pasta ext. Porém se você olhar com mais detalhes, antes deste NullPointerException você tem uma exceção antes, algo como: java.sql.SQLException: No suitable driver

Parabéns por ter conseguido resolver sozinho.

Criado 8 de outubro de 2008
Ultima resposta 9 de out. de 2008
Respostas 2
Participantes 2