Bem… estou desenvolvendo um sistema web de uma transportadora, e precisava de um método que verificasse entre uma lista de veiculos e uma determinada data, o primeiro veículo que não possua um serviço em status pendente, para que o mesmo possa ser agendado a uma nova entrega.
Ai que vem o problema, eu estou usando a seguinte query:
String consultaNotificacaoVeiculo = "Select not_status, not_num_servico from notificacao where vei_placa = ? and not_dia_entrega = ? and not_mes_entrega = ?"
Ou seja, quero que a mesma não retorne nenhum registro, pois ai saberei que o veiculo não possui nenhum serviço…
Usei este método:
public String verificaNotificacaoPendenteDeVeiculo(List<VeiculoBean> veiculos, int dia, int mes){
String placaVeiculo = "";
boolean encontrou = false;
VeiculoBean veiculo = new VeiculoBean();
try {
pstm = bd.conectar().prepareStatement(consultaNotificacaoVeiculo);
int i = 0;
//Loop para buscar o primeiro Veiculo
while((!encontrou) && (i < veiculos.size())){
//atribui ao bean de veiculo o veiculo da lista da posição i.
veiculo = veiculos.get(i);
System.out.println(veiculo.getPlaca());
//Seta os Parâmetros da query
pstm.setString(1, veiculo.getPlaca());
pstm.setInt(2, dia);
pstm.setInt(3, mes);
rs = pstm.executeQuery();
//Verifica o resultado da query, se há um serviço pendente para o veiculo na data informada.
if((rs.getInt("not_num_servico") > 0) && (rs.getString("not_status").equals("pendente"))){
/*Significa que existe um serviço pendente,
incrementa i para passar para o próximo veiculo da lista.*/
i++;
}
else{
//Não tem serviço, poderá ser retornado, encerrando o laço.
placaVeiculo = veiculo.getPlaca();
encontrou = true;
}
i++;
}
bd.desconectar();
} catch (SQLException e) {
e.printStackTrace();
bd.desconectar();
}
return placaVeiculo;
}
O meu resultSet está trazendo uma sqlException… e daí não consigo tratar o resultado vazio apra retornar a placa do veículo que não possui serviço…
Alguem poderia me ajudar com uma sujestão ou correção?
Grato