NullPointerException no executeUpdate

2 respostas
C

Testei a classe abaixo no java e deu tudo certo. Acontece que quando tento utilizá-la num JPS conteiner dá pau de NullPointerException. Já revisei várias vezes e não consigo achar o erro. Alguém pode ajudar?

Código no JSP:

<%
	xUsers usuario = new xUsers();
	String[] dadosUsuario = new String[4];
	dadosUsuario[0]	= "apelido";
	dadosUsuario[1]	= "fabricio";
	dadosUsuario[2]	= "senha";
	dadosUsuario[3] = "123";
	String sql = usuario.prepareSQL("insert", "users", "", dadosUsuario);
	usuario.runSQL(sql);
%>

Código da classe usuario:

public class xUsers extends xConnection{

	public xUsers(){
		Open("cde","root","");
    }	
    	
	public boolean addUser(String[] dadosUsuario){
		   runSQL(prepareSQL("insert", "users", "", dadosUsuario));
		   return true;
	    }
		else 
			return false;
	}
}
Código da classe de conexão:
import java.sql.*;

public class xConnection{
   private Connection conn;
   private Statement stm;
   private PreparedStatement pstm;
   private ResultSet rs;
   
   protected String driver = "com.mysql.jdbc.Driver";
   
   xConnection(){
   	  conn = null;
   	  stm = null;
   	  pstm = null;
   	  rs = null;   	
   }
   
   public void Open(String banco, String user, String senha)
   {
      try
      {
         Class.forName(driver);
         conn = DriverManager.getConnection("jdbc:mysql://localhost/"+banco+"?user="+user+"&password="+senha);
         stm = conn.createStatement();
      }
      catch (SQLException e){
      	 System.out.println("Não foi possível estabelecer conexão com o banco de dados");
      }
      catch(ClassNotFoundException e){
      	 e.printStackTrace();
      }
   }
   
   public void runSQL(String sql){
   	  try{
		 stm.executeUpdate(sql);
   	  }
   	  catch(SQLException e){
   	  	 System.out.println("Erro SQL. Erro: " + e);
   	  }
   }  
   
   public void Close(){
   	  try{ 
   	     if (conn != null) conn.close();
   	  }
      catch(SQLException e){
   	  	 System.out.println("Erro ao fechar banco. Erro: " + e);
   	  }
   }
}

2 Respostas

cancao

Onde está o metodo prepareSQL?!

Até.

N

“caiuby”:
<% xUsers usuario = new xUsers(); String[] dadosUsuario = new String[4]; dadosUsuario[0] = "apelido"; dadosUsuario[1] = "fabricio"; dadosUsuario[2] = "senha"; dadosUsuario[3] = "123"; String sql = usuario.prepareSQL("insert", "users", "", dadosUsuario); usuario.runSQL(sql); %>

Você não está inicializando dadosUsuario.

dadosUsuario[0] = new String();
Criado 7 de março de 2004
Ultima resposta 7 de mar. de 2004
Respostas 2
Participantes 3