[RESOLVIDO]Comparar dates

Gente, preciso de uma luz! Estou tentando fazer uma comparação entre uma data que eu seleciono no datachoose e uma tabela de vendas com um campo date no banco, o modeldate me retorna nulo e sem erros. Não sei se devo fazer um for para percorrer a lista, porém não tenho ideia de como faria

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {   
                                     
       Date modeldate = modelVendas.getVenDataVenda();
        if (dateChooser.getDate() == modeldate){
        
       // pegar uma lista de vendas e comparar com o date choose
        
        
        
                    
        DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
        listaModelVendasClientes = controllerVendasCliente.getListaVendasClienteController();
        int cont = listaModelVendasClientes.size();
        
        modelo.setNumRows(0);
        for(int i = 0; i < cont; i++){
           
            modelo.addRow(new Object[]{
            listaModelVendasClientes.get(i).getModelVendas().getIdVenda(),
            listaModelVendasClientes.get(i).getModelCliente().getCliNome(),
            listaModelVendasClientes.get(i).getModelVendas().getVenDataVenda()
            
        });            
    }                                        
        }
  
    }

CONEXÃO

public boolean executarSQL(String pSQL){
        try {
            //createStatement de con para criar o Statement
            this.setStatement(getCon().createStatement());

            // Definido o Statement, executamos a query no banco de dados
            this.setResultSet(getStatement().executeQuery(pSQL));
            
        } catch (SQLException ex) {
            ex.printStackTrace();
            return false;
        }
        return true;
    }

DAO

 public ModelVendas getVendasDAO(int pIdVenda){
        ModelVendas modelVendas = new ModelVendas();
        try {
            this.conectar();
            this.executarSQL(
                "SELECT "
                    + "pk_id_vendas,"
                    + "fk_id_caixa," 
                    + "fk_cliente,"
                    + "ven_data_venda,"
                    + "ven_valor_liquido,"
                    + "ven_valor_bruto,"
                    + "ven_desconto,"
                    + "ven_taxa,"
                    + "ven_kg"
                 + " FROM"
                     + " tbl_vendas"
                 + " WHERE"
                     + " pk_id_vendas = '" + pIdVenda + "'"
                + ";"
            );

            while(this.getResultSet().next()){
                modelVendas.setIdVenda(this.getResultSet().getInt(1));
                modelVendas.setIdCaixa(this.getResultSet().getInt(2));
                modelVendas.setCliente(this.getResultSet().getInt(3));
                modelVendas.setVenDataVenda(this.getResultSet().getDate(4));
                modelVendas.setVenValorLiquido(this.getResultSet().getDouble(5));
                modelVendas.setVenValorBruto(this.getResultSet().getDouble(6));
                modelVendas.setVenDesconto(this.getResultSet().getDouble(7));
                modelVendas.setVenTaxa(this.getResultSet().getDouble(8));
                modelVendas.setVenKg(this.getResultSet().getDouble(9));
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            this.fecharConexao();
        }
        return modelVendas;
    }



 public ModelVendas datavenda(ModelVendas pModelVendas){
          ModelVendas modelv = new ModelVendas();
        try {
            this.conectar();
            this.executarSQL(
                    "SELECT ven_data_venda from tbl_vendas"
                      
                           + ";"
            );
            while(this.getResultSet().next()){
                modelv.setVenDataVenda(this.getResultSet().getDate(1));
           
            }
            }catch(Exception e){
            e.printStackTrace();
            
        }finally{
            this.fecharConexao();
        }
        return datavenda(pModelVendas);
    }

   
}

CONTROLLER

public ModelVendas getVendasController(int pIdVenda){
    return this.daoVendas.getVendasDAO(pIdVenda);
}

 public ModelVendas getdata(ModelVendas pModelCaixa){
    return this.daoVendas.datavenda(pModelCaixa);
}

sua query funciona no banco de dados?

1 curtida

geralmente sim, mas nesse caso especifico não. Não sei se tem a ver pelo campo ser date

Acredito que possa ser a DAO ou o Controller, acrescentei alguns trechos

mas onde vc ta procurando pela data nesse código que vc mostrou?

aqui vc pega pelo ID.


Tenta essa query:

SELECT algumaCoisa FROM tabela WHERE dataInicial <= ? AND dataFinal >= ?

Consegui fazer a filtragem por data dessa forma, obrigada pela ajuda:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
SimpleDateFormat sDate = new SimpleDateFormat(“yyyy-MM-dd”);

String date = sDate.format(dateChooser.getDate());
DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
TableRowSorter tr = new TableRowSorter(modelo);
jTable1.setRowSorter(tr);
tr.setRowFilter(RowFilter.regexFilter(date.trim()));

        total0.setText(somaValorTotal()+"");

}