JSP + Consulta SQL

Olá pessoa, estou precisando de ajuda

abaixo o código para executar uma consulta no banco de dados, porém acredito que o erro está na parte que está em negrito, soh que nao c onsegui descubrir ainda.

toda vez que a query eh executada ela nao consegue distinguir o que eh nulo do que não eh, entao se somente uma variavel tiver valor o retorno eh sempre nao localizado.

por favor se alguem puder me ajudar.

codigo*
String envelope = null;
String referencia = null;
String identificacao = null;

  if(request.getParameter("txtenvelope") != null)
    envelope = "'" + request.getParameter("txtenvelope") + "'";

  if(request.getParameter("txtreferencia") != null)
    referencia = "'" + request.getParameter("txtreferencia") + "'";

  if(request.getParameter("txtidentificacao") != null)
    identificacao = "'" + request.getParameter("txtidentificacao") + "'";

  String envelope1="";
  String identificacao1="";
  String referencia1="";
  String path="";
  String dep="";
  String tipdoc="";
  int coddep=0;
  int codtipo=0;

  Connection conexaoBD;
  String querySelect;
  String stringConexao;
  Statement comando;
  ResultSet rs;
  try{

     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     stringConexao = "jdbc:odbc:K";
     conexaoBD = DriverManager.getConnection(stringConexao);

     querySelect = "SELECT i.inv_envelope as env, i.inv_referencia as ref, "+
                          "i.inv_identificacao ide, i.inv_imagem as pat, " +
                          "d.dep_depto as dep, t.tdoc_tipodoc as tipdoc " +
                          "FROM inventario i, departamento d, tipodocumento t " +
                          "WHERE i.inv_coddepto = d.dep_coddepto " +
                          "AND i.inv_codtipodoc = t.tdoc_codtipodoc ";

[b] if (envelope.equals(null)){
envelope = “”;
}else{
querySelect = querySelect + " AND i.inv_envelope = " + envelope;
}

                    if (referencia.equals(null)){
                        referencia = "";
                    }else{
                        querySelect = querySelect + " AND i.inv_referencia = " + referencia;
                         }

                    if (identificacao.equals(null)){
                        identificacao = "";
                    }else{
                        querySelect = querySelect + " AND i.inv_identificacao LIKE " + identificacao;
                         }[/b]

     querySelect = querySelect + " ORDER BY i.inv_envelope, i.inv_referencia, i.inv_identificacao";
     comando = conexaoBD.createStatement();
     rs = comando.executeQuery(querySelect);

fim

obrigado a todos
Katayama

huaeuhahuae… cara… se uma referencia é nula, tu não pode chamar métodos nela… então, se uma referencia é nula, isso vai da pau direto uhaeae:

if ( ref.equals( null ) ) { ...

tu tem q testar com == né! :lol:

O que o Matheus falou está corretíssimo, só quero tentar te ajudar a entender o motivo disso. :cool:

a classe que contém o método equals é a java.lang.String, ou seja, ela deve ser aplicada sobre um objeto que seja descendente desta classe e até aí … tudo beleza… mas você não pode usar o valor NULL no parâmetro deste método, pois ele prevê algo do tipo object em sua assinatura e null é um valor e não um objeto.

Via de regra, qualquer coisa que tu for comparar que tu não tem certeza que é String e não nula, deixa o .equals pra lá e usa if (x == y ) que vai funcionar.

Só pra deixar mais claro o que o Matheus falou porque usou termos como referencia, chamar metodos na referencia nula, etc… E poderia ter ficado meio confuso. :grin:

[]s