Re:Uso invalido de ponteiro para nulo

1 resposta
andreiribas

na classe de pesquisa faz assim:

junta.append("SELECT p.id_maquina, m.nm_maquina, p.data_inicio, p.data_termino FROM pr_maquina_manutencao p , en_maquina m WHERE p.id_maquina = m.id_maquina ");
junta.append(" and m.id_maquina="+id_maquina +" ");
if(nome != null)
   junta.append("and m.nm_maquina like'%"+nome+"%'");  
if(dataent != null)
   junta.append(" and p.data_inicio={D '"+dataent+"'}");  
if(datasai != null)
   junta.append(" and p.data_termino={D'"+datasai+"'}");

na verdade você deveria usar um PreparedStatement em vez de ficar concatenando parâmetros desse jeito.

e na action você tem que fazer isso:

if((request.getParameter("nomeMaquina") != null) && !(request.getParameter("nomeMaquina").equals("")) , e assim pros outros parâmetros. Você não pode fazer != “” porque vai ser comparado com a referência, e String é um objeto, por issod e usar o método equals().

1 Resposta

tiaguinhooo

Bom gente obrigado por ler meu post eu to com dificuldades aki é algo chato mas deve ter alguma solução
é o seguinte eu tenhu um formulario em jsp com 4 campos, onde eu pego os valores apenas dos campos que estão preenchidos envio pra minha interface q de la vai la pra minha classe onde ela faz uma pesquisa no banco de dados e me retorna uma string. A minha ideia e simples retornar resultado independente de qualquer campo que o sujeito digitar so que fica dando nulo eu sei é pq eu to mandando algo nulo mais eu mando oq entao? o codigo abaixo

essa e a jsp

 if(request.getParameter("nomeMaquina")!="")
            {
            nomeMaquina = (String)(request.getParameter("nomeMaquina"));
            }
            else
            {
            nomeMaquina=null;
            }
                 if(request.getParameter("idmaquina") != null) 
                {
 	id= (Integer.parseInt(request.getParameter("idmaquina")));
                }
       
                 if(request.getParameter("datain") != "") 
                {
		datainit= (String)(request.getParameter("datain"));
                parsedinit =  dates.converte(datainit);
                }
                  else
                {
                 parsedinit = null;           
                }
                 if(request.getParameter("datater") != "") 
                {
		dataend = (String)(request.getParameter("datater"));
              parsedend =  dates.converte(dataend);
                }
                else
                {
                parsedend = null;
String a= objpesq.PesquisaMaquina(nomeMaquina, id, parsedinit, parsedend);
      out.println(a);

essa e a classe que pesquisa pra mim

public String PesquisaMaquina(String nome, int id_maquina, Date dataent, Date datasai)
    {
        Conexao connect = new Conexao();
        connect.getConectaBanco();
        StringBuffer junta = new StringBuffer();

if(nome != null && dataent != null && datasai != null)
        {
            junta.append("SELECT p.id_maquina, m.nm_maquina, p.data_inicio, p.data_termino FROM pr_maquina_manutencao p , en_maquina m WHERE p.id_maquina = m.id_maquina and ");
            junta.append(" m.id_maquina="+id_maquina+"");
            junta.append("and m.nm_maquina like'%"+nome+"%'");
            junta.append("and p.data_inicio={D '"+dataent+"'}");
            junta.append("and p.data_termino={D'"+datasai+"'}");
        }
ResultSet rs;
      
        rs = connect.searchResults(junta.toString());
        String a="";
        int rowCount = 0; 
        a+="<P >&lt;TABLE&gt;";
        ResultSetMetaData rsmd;
        try {
            rsmd = rs.getMetaData();
            int columnCount = rsmd.getColumnCount(); 
            a+="&lt;TR&gt;";
            // for (int i = 0; i &lt; columnCount; i++) 
            // {
            // junta.append("&lt;TH&gt;" + rsmd.getColumnLabel(i + 1) + "&lt;/TH&gt;");
              a+="&lt;TH&gt;" + "Codigo da Maquina" + "&lt;/TH&gt;";
               a+="&lt;TH&gt;" + "Nome Da Maquina" + "&lt;/TH&gt;";
                a+="&lt;TH&gt;" + "Data de entrada" + "&lt;/TH&gt;";
                 a+="&lt;TH&gt;" + "Data de Saida" + "&lt;/TH&gt;";
            // }
            a+="&lt;/TR&gt;"; 
            while (rs.next()) 
            {
               rowCount++;
               a+="&lt;TR&gt;";
               for (int i = 0; i &lt; columnCount; i++) 
               {
                   a+="&lt;TD&gt;" + rs.getString(i + 1) + "&lt;/TD&gt;";     
               }
               a+="&lt;/TR&gt;";
            }
            a+="&lt;/TABLE&gt;</P>";  
           
        } catch (SQLException ex) {
            ex.printStackTrace();
        }  
        
        
        return a;
}

esse pedaço aki tava ai em cima é a parte onde ele ve qm é nulo qm nao é e faz a pesquisa dependendo do q
o fulano digitou la

/*
        
        if (nome == null && dataent == null && datasai == null)
        {
             junta.append("SELECT * FROM en_maquina WHERE  ");
             junta.append("id_maquina="+id_maquina+"");
        }
        if(nome == null && datasai == null && dataent !=null)
        {
            junta.append("SELECT * FROM pr_maquina_manutencao,en_maquina WHERE ");
            junta.append(" id_maquina like %"+id_maquina+"%");
           junta.append("and data_inicio='"+dataent+"'");
            // junta.append("and data_inicio='"+dataent+"'");
         
        }
        if(nome == null && dataent == null && datasai != null)
        {
            junta.append("SELECT * FROM pr_maquina_manutencao,en_maquina WHERE ");
            junta.append(" id_maquina like %"+id_maquina+"%");
           junta.append("and data_termino='"+datasai+"'");
        }
        if(nome == null && dataent != null && datasai != null)
        {
            junta.append("SELECT * FROM pr_maquina_manutencao,en_maquina WHERE");
            junta.append(" id_maquina like %"+id_maquina+"%");
             junta.append("and data_inicio='"+dataent+"'");
            junta.append("and data_termino='"+datasai+"'");
        }
        
      
        if(dataent == null && datasai == null && nome!= null)
        {
            junta.append("SELECT * FROM pr_maquina_manutencao,en_maquina WHERE");
            junta.append(" id_maquina like %"+id_maquina+"%");
            junta.append("and nm_maquina like'%"+nome+"%'");
        }
        */

bom gente queria ajuda ai nisso obrigado e desculpa qualquer coisa !

Criado 6 de novembro de 2007
Ultima resposta 6 de nov. de 2007
Respostas 1
Participantes 2