Bom Pessoal, estou com um problemão!!!
Tenho uma classe q possui um metodo de busca no bd, e eu estou tentando fazer no mesmo metodo pra q ele busque tbm pelo campo duracao e hora, mas por intervalo dos mesmos! o Metodo é esse:
public List pesquisarDT(String data1, String data2, String duracao, String duracao1, String duracao2,
String tipo, String importante,
String ouvida, String procurar, String hora, String pa){
List resultado = null;
String sql;
sql="select * from ligacoes where (data_lig between ? and ? ) ";
if(!tipo.equals("todas")){
sql+=" and tipo = ? ";
}
if(importante.equals("importante")){
sql+=" and importante = true ";
}
if(ouvida.equals("ouvida")){
sql+=" and ouvida = false ";
}
if (!pa.equals("")){
sql+=" and pa_atendimento = ? ";
}
if(!procurar.equals("")){
sql+=" and (contato like ? or observacao like ? or telefone like ? or hora like ?) ";
}
if(!hora.equals("")){
sql+="and hora >= ? and hora <= ?";
}
if(!duracao.equals("")){
sql+="and (duracao between ? and ?)";
}
if(tipo.equals("todas")){
sql+="order by [data_lig] desc, [hora] desc";
}
else {
sql+="order by [data_lig] desc, [hora] desc";
}
try {
Connection con = Conexao.getConexaoODBC();
PreparedStatement pstm = con.prepareStatement(sql);
pstm.setString(1, data1 );
pstm.setString(2, data2 );
if(!tipo.equals("todas")){
pstm.setString(3, tipo );
if (!procurar.equals("")) {
if(!pa.equals("")){
pstm.setString(4, pa);
if (!procurar.equals("")) {
pstm.setString(5, "%" + procurar + "%");
pstm.setString(6, "%" + procurar + "%");
pstm.setString(7, "%" + procurar + "%");
pstm.setString(8, "%" + procurar + "%");
}
if(!duracao.equals("")){
pstm.setString(9, duracao1);
pstm.setString(10,duracao2);
}
if(!hora.equals("")){
pstm.setString(11, "%" + hora + "%");
}
}else{
pstm.setString(4, "%" + procurar + "%");
pstm.setString(5, "%" + procurar + "%");
pstm.setString(6, "%" + procurar + "%");
pstm.setString(7, "%" + procurar + "%");
}
}else{
if(!pa.equals("")){
pstm.setString(4, pa);
}
}
}
if(tipo.equals("todas")){
if(!pa.equals("")){
pstm.setString(3, pa);
if (!procurar.equals("")) {
pstm.setString(4, "%"+procurar+"%");
pstm.setString(5, "%"+procurar+"%");
pstm.setString(6, "%"+procurar+"%");
pstm.setString(7, "%"+procurar+"%");
}
}else {
if (!procurar.equals("")){
pstm.setString(3, "%" + procurar + "%");
pstm.setString(4, "%" + procurar + "%");
pstm.setString(5, "%" + procurar + "%");
pstm.setString(6, "%" + procurar + "%");
}
}
}
ResultSet rs = pstm.executeQuery();
if(rs.next()){
resultado = new ArrayList();
do {
PesquisaVO pesquisa = preencherpesquisa(rs);
resultado.add(pesquisa);
} while (rs.next());
}
rs.close();
pstm.close();
con.close();
return resultado;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
E a referencia no jsp é dessa forma:
<td width="10%"><span class="style2">
<input name="duracao1" id="duracao1" type="text" size="2" />
</span></td>
<td width="10%"><span class="style2">
<input name="duracao2" id="duracao2" type="text" size="2" />
</span></td>
<td width="30%"><span class="style2">
<input name="hora" type="text" id="hora" size="6" value="00:00:00"/>
</span></td>
<td width="5%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">e</font></td>
<td width="30%" valign="bottom"><span class="style2">
<input name="hora" type="text" id="hora" size="6" value="23:59:59"/>
O Problema é q qd eu busco pelo intervalo q duracao ele vem null e qd busco por intervalo d hora ele não traz nada!
O q estou fazendo de errado? Alguém poderia me ajudar nesse problema!!
Desde já agradeço