Когда я вызываю getAllInvoice (Date date), чтобы получить список наблюдаемых счетов-фактур, передавая дату из средства выбора даты, но он возвращает пустой список, пожалуйста, помогите, как получить счет-фактуру наблюдаемого списка, передающий дату выбора даты, где я сохраняю дату как длинный формат в базе данных в этом примере я предоставил ниже.
public VBox getBody() {
DatePicker datePicker = new DatePicker();
datePicker.setPrefWidth(width);
datePicker.setValue(LocalDate.now());
Calendar calendar = Calendar.getInstance();
calendar.set(datePicker.getValue().getYear(),datePicker.getValue().getMonthValue(),datePicker.getValue().getDayOfMonth());
ListView<String> invoiceListView = new ListView<>();
invoiceListView.setPrefWidth(width);
invoiceListView.setPrefHeight(550);
ObservableList<Invoice> invoiceObservableList = connection.getAllInvoice(Date.valueOf(datePicker.getValue()));
datePicker.valueProperty().addListener((observable, oldValue, newValue) -> {
invoiceObservableList.clear();
invoiceObservableList.addAll(connection.getAllInvoice(Date.valueOf(datePicker.getValue())));
});
ListChangeListener<Invoice> listener = new ListChangeListener<Invoice>() {
@Override
public void onChanged(Change<? extends Invoice> c) {
ObservableList<String> invoiceList = FXCollections.observableArrayList();
for (Invoice invoice : invoiceObservableList) {
Customer customer = connection.getCustomerById(invoice.getCustomerId());
invoiceList.add("#" + invoice.getId() + " - " + customer.getName() + " (" + customer.getNumber() + ")");
}
invoiceListView.setItems(invoiceList);
}
};
invoiceObservableList.addListener(listener);
ObservableList<String> invoiceList = FXCollections.observableArrayList();
for (Invoice invoice : invoiceObservableList) {
Customer customer = connection.getCustomerById(invoice.getCustomerId());
invoiceList.add("#" + invoice.getId() + " - " + customer.getName() + " (" + customer.getNumber() + ")");
}
invoiceListView.setItems(invoiceList);
VBox invoicePreview = new VBox();//addMe
invoicePreview.setPrefWidth(360);
invoicePreview.setPrefHeight(560);
invoicePreview.setAlignment(Pos.CENTER);
//invoicePreview.setStyle("-fx-background-color: green");
//invoicePreview.setPadding(new Insets(15));
invoiceListView.setOnMouseClicked(event -> {
if (event.getClickCount() == 2) {
invoicePreview.getChildren().clear();
invoicePreview.setAlignment(Pos.TOP_CENTER);
Invoice invoice = invoiceObservableList.get(invoiceListView.getSelectionModel().getSelectedIndex());
InvoicePreview preview = new InvoicePreview(invoice,sizer.getValue(100));
invoicePreview.getChildren().add(preview.printPreview());
}
});
Label massage = new Label("Please select invoice first.");
massage.setFont(new Font(invoiceWidth*5/100));
invoicePreview.getChildren().add(massage);
VBox leftVBox = new VBox(datePicker, invoiceListView);
leftVBox.setSpacing(5);
HBox mainBody = new HBox(leftVBox,invoicePreview);
mainBody.setSpacing(5);
VBox root = new VBox(mainBody);
root.setId("body");
return root;
}
и это метод getAllInvoice (Date date) класса Connection, который возвращает наблюдаемый список счетов,
public ObservableList<Invoice> getAllInvoice(Date date) {
long longDate = date.getTime();
ObservableList<Invoice> list = FXCollections.observableArrayList();
String query = "SELECT * FROM " + TABLE_INVOICE + " WHERE " + INVOICE_DATE + " LIKE \'"+longDate+"\'";
System.out.println(query);
try {
connection = DriverManager.getConnection("jdbc:sqlite:" + DATA_BASE);
Statement state = connection.createStatement();
ResultSet resultSet = state.executeQuery(query);
while (resultSet.next()) {
list.add(new Invoice(resultSet.getInt(INVOICE_ID), resultSet.getInt(INVOICE_USER_ID), resultSet.getInt(INVOICE_CUSTOMER_ID), resultSet.getLong(INVOICE_DATE)));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
}
return list;
}
файл базы данных, например:
"id" "uId" "cusId" "date"
-------------------------------
"3" "1" "4" "1524636334412"
"4" "1" "4" "1524636355419"
"5" "1" "3" "1524636411858"
"6" "1" "3" "1524637462701"
"7" "1" "4" "1524638110920"
как я могу получить данные, передающие Date в качестве аргумента?