Boa noite.
Estou tentando fazer uma consulta no banco de dados (PostgreSql) onde tenho uma tabela de compras e ela tem um campo que armazena as datas das compras. Bem Estou tentando consultar todas as compras realizadas em um intervalos entre duas datas, mas a mesma rertonar estes erros:
primeiro aviso e este:
segundo aviso e este:
codigo do botao pesquisa:
private void jbPesquisaHistActionPerformed(java.awt.event.ActionEvent evt) {
//botao buscar compras por periodo
try {
//receber as datas.
DateTimeFormatter formato = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate data_inicio = LocalDate.parse(jftDtInicial.getText(), formato);
LocalDate data_fim = LocalDate.parse(jftDtFinal.getText(), formato);
ComprasDao dao = new ComprasDao();
List<Compras> lista = dao.listarComprasPorPeriodo(data_inicio, data_fim);
System.out.println(lista);
preencherTabela("select codigo_compra, num_nota, data_compra, nome, total_compra, obs from tb_compras "
+ "inner join tb_fornecedores on (cod_fornecedor = codigo_fornecedor) where data_compra between "+data_inicio+" and "+data_fim+" order by data_compra");
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Digite Duas Datas Com Intervalo!");
}
}
codigo do metodo em Dao:
//metodo que filtra vendas por data
public List listarComprasPorPeriodo(LocalDate data_inicio, LocalDate data_fim) {
try {
//criando a lista.
List lista = new ArrayList<>();
//comando sql para lista os dados.
String sql = "select codigo_compra, num_nota, data_compra, nome, total_compra, obs from tb_compras "
+ “inner join tb_fornecedores on (cod_fornecedor = codigo_fornecedor) where data_compra between ? and ?”;
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, data_inicio.toString());
stmt.setString(2, data_fim.toString());
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
Compras obj = new Compras();
Fornecedores f = new Fornecedores();
obj.setCodigoCompra(rs.getInt("codigo_compra"));
obj.setNumNota(rs.getInt("num_nota"));
obj.setDataCompra(rs.getDate("data_compra"));
f.setNome(rs.getString("nome"));
obj.setTotalCompra(rs.getDouble("total_compra"));
obj.setObs(rs.getString("obs"));
obj.setFornecedor(f);
lista.add(obj);
}
return lista;
} catch (Exception erro) {
JOptionPane.showMessageDialog(null, "Erro :" + erro);
return null;
}
}



