Моя проблема в том, что я не знаю, как обрабатывать пустой объект LocalDate.
У меня есть лист Excel, в котором есть столбец даты.Формат выглядит следующим образом:
19693112 или 00000000 (если дата еще не известна)
Внутри Java-приложения я изменяю формат данных и загружаю их в базу данных.
Сначала я конвертирую строку в нужный мне формат (31.12.1969).
Я могу без проблем вставить первый формат в свою базу данных.но второй никогда не работает, потому что мой класс преобразования преобразует его в 00.00.0000, и это не принимается MS Access.
Я уже пытался установить значение, которое я хочу, чтобы "ноль", но база данных не может обработать этозначение для поля даты.
Есть ли способ, чтобы значение в базе данных отображало просто пустое поле даты?
Спасибо за любую помощь.
public static void insertNewPensioners(List<Pensioner> newPensioners) {
if (cell.getColumnIndex() == indexe.get(19)) { //checks if correct excelcell is used
String cellValue = cell.getStringCellValue();
if (cellValue.matches("0+")) {
resignationDate = null;
} else {
resignationDate = DateFormatter.formatDate(cellValue);
}
pensionerExcel.add(new Pensioner(pknr, idkz, resignationDate));
insertNewPensioners(newPensioners);
public static void insertNewPensioners (List < Pensioner > newPensioners) {
try {
connect(pathDB);
} catch (Exception e) {
Alerts.connectionError();
e.printStackTrace();
}
for (int i = 0; i < newPensioners.size(); i++) {
String insert = ("Insert into Pensionär (PKNR, IDKZ, ResignationDate) VALUES " +
"(?,?,?)");
try {
ps = connection.prepareStatement(insert);
ps.setInt(1, newPensioners.get(i).getPensionInsuranceNumber());
ps.setInt(2, newPensioners.get(i).getIdkz());
ps.setDate(3, Date.valueOf(newPensioners.get(i).getResignationDate()));
ps.executeUpdate();
validRows++;
} catch (Exception e) {
Alerts.wrongValues();
e.printStackTrace();
}
}
close();
}