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 ><TABLE>";
ResultSetMetaData rsmd;
try {
rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
a+="<TR>";
// for (int i = 0; i < columnCount; i++)
// {
// junta.append("<TH>" + rsmd.getColumnLabel(i + 1) + "</TH>");
a+="<TH>" + "Codigo da Maquina" + "</TH>";
a+="<TH>" + "Nome Da Maquina" + "</TH>";
a+="<TH>" + "Data de entrada" + "</TH>";
a+="<TH>" + "Data de Saida" + "</TH>";
// }
a+="</TR>";
while (rs.next())
{
rowCount++;
a+="<TR>";
for (int i = 0; i < columnCount; i++)
{
a+="<TD>" + rs.getString(i + 1) + "</TD>";
}
a+="</TR>";
}
a+="</TABLE></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 !