Gostaria que me ajudassem numa questão.
Tenho um DAO que está recuperando informações do banco para montar um objeto.
Porém, quando certa data está vazia, ele não executa o if que compara se o registro está vazio ou não.
if (!rs.getDate("DATA_ENVIO_APROV").equals(null))
Aí já cai no catch.
Poderiam me ajudar?
A data no banco está vazia mesmo, mas era pra fazer a validação, né?
Segue código do DAO:
public Solicitacao buscarPorId(long id) throws SQLException {
Solicitacao solicitacao = null;
Connection conn = null;
PreparedStatement pst = null;
try {
conn = ConexaoBanco.abrirConexao();
String sql = "select so.ID_SOLICITACAO, so.TIPO_PEDIDO, so.RESPONSAVEL_PEDIDO, so.DESCRICAO_PEDIDO, "
+ "so.APROVACAO_PEDIDO, so.LOCAL_CHEGADA, so.STATUS_PEDIDO, so.DATA_INICIAL, "
+ "so.DATA_ENVIO_APROV, so.DATA_RET_APROV, so.DATA_FINAL, so.PRAZO_LIMITE, so.DATA_FINAL_PREVISTA, "
+ "se.ID_SETOR, se.DESCRICAO_SETOR, e.ID_ESTOQUE, e.DESCRICAO_ESTOQUE " + "from solicitacao so "
+ "join setor se on so.SETOR = se.ID_SETOR " + "join estoque e on so.ESTOQUE = e.ID_ESTOQUE "
+ "where ID_SOLICITACAO like ? " + "order by ID_SOLICITACAO desc";
pst = conn.prepareStatement(sql);
pst.setLong(1, id);
ResultSet rs = pst.executeQuery();
while (rs.next()) {
solicitacao = new Solicitacao();
Setor setor = new Setor();
Estoque estoque = new Estoque();
solicitacao.setIdSolicitacao(rs.getLong("ID_SOLICITACAO"));
solicitacao.setTipoPedido(TipoPedido.convertStringToTipoPedido(rs.getString("TIPO_PEDIDO")));
solicitacao.setResponsavelPedido(rs.getString("RESPONSAVEL_PEDIDO"));
setor.setIdSetor(rs.getInt("ID_SETOR"));
setor.setDescricaoSetor(rs.getString("DESCRICAO_SETOR"));
solicitacao.setSetor(setor);
estoque.setIdEstoque(rs.getInt("ID_ESTOQUE"));
estoque.setDescricaoEstoque(rs.getString("DESCRICAO_ESTOQUE"));
solicitacao.setEstoque(estoque);
solicitacao.setDescricaoCompra(rs.getString("DESCRICAO_PEDIDO"));
solicitacao.setAprovacao(AprovacaoPedido.convertStringToAprovacao(rs.getString("APROVACAO_PEDIDO")));
solicitacao.setLocalChegada(LocalEntrega.convertStringToLocal(rs.getString("LOCAL_CHEGADA")));
solicitacao.setStatusSolicitacao(StatusCompra.convertStringToStatus(rs.getString("STATUS_PEDIDO")));
solicitacao.setDataInicialPedido(ConverteUtil.convertDateToLocal(rs.getDate("DATA_INICIAL")));
if (!rs.getDate("DATA_ENVIO_APROV").equals(null)) {
solicitacao.setDataEnvioAprovacao(ConverteUtil.convertDateToLocal(rs.getDate("DATA_ENVIO_APROV")));
}
if (!rs.getDate("DATA_RET_APROV").equals(null)) {
solicitacao.setDataRetornoAprovacao(ConverteUtil.convertDateToLocal(rs.getDate("DATA_RET_APROV")));
}
if (!rs.getDate("DATA_FINAL").equals(null)) {
solicitacao.setDataFinal(ConverteUtil.convertDateToLocal(rs.getDate("DATA_FINAL")));
}
solicitacao.setPrazoLimite(ConverteUtil.convertDateToLocal(rs.getDate("PRAZO_LIMITE")));
solicitacao.setDataFinalPrevista(ConverteUtil.convertDateToLocal(rs.getDate("DATA_FINAL_PREVISTA")));
}
pst.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, e.getMessage());
} finally {
pst.close();
conn.close();
}
return solicitacao;
}