Я изучаю Java и только начал играть с mysql, и у меня возникла небольшая проблема с некоторой логикой, которая работала в python, и у меня возникли проблемы с конвертацией.
У меня, в основном, есть оператор try, который пытается найти, существует ли запись в базе данных ... Если она тогда хорошо работает, она перемещается, но если запись не существует, то она добавляет ее. Вот мой код
try
{
PreparedStatement Findstatement;
Findstatement = con.prepareStatement(" SELECT DataMaster_MasterCode FROM Allocation WHERE Master_Code = (?) and date = (?)");
Findstatement.setInt(1, Code);
Findstatement.setString(2, AllocationDate);
ResultSet CodeAll = Findstatement.executeQuery();
int DataMaster_MasterCode;
while (CodeAll.next())
{
DataMaster_MasterCode = CodeAll.getInt("DataMaster_MasterCode");
}
System.out.println("Found allocation " + DataMaster_MasterCode + " already exists for " + Name);
}
catch (Exception e)
{ //Create statements... }
Проблема в том, что он продолжает переходить к исключению, поскольку переменная DataMaster_MasterCode может не быть инициализированной. Я думаю, потому что Python просто выполняет код по ходу работы, он работает в Python, но, поскольку Java предварительно компилирует его, он видит это как ошибку и пропускает. Если переменная не может быть не инициализирована, я хочу, чтобы она завершилась неудачно и перейти к оператору catch (который создает переменную).
Сейчас он продолжает давать сбой и продолжает создавать (дублировать) записи, потому что он никогда не завершает оператор, чтобы найти сами данные. Я думал о том, чтобы поместить оператор else if, который проверяет переменную как ноль, а затем ломается, но у меня это тоже не сработало.
Пожалуйста, помогите мне с логикой.