У меня есть несколько экземпляров подготовленных состояний, все они работают и все зафиксированы.За исключением того, что этот блок кода не работает:
public static int InsertBatchProcessingLogs(Connection con, Data dt) {
int batchID = -1;
PreparedStatement preparedStatement = null;
try {
System.out.println("INSERT INTO BATCH PROCESSING LOGS");
preparedStatement = con.prepareStatement("insert into batch_processing_logs (batchID, targetMSISDN,plancode,createddate) select ?,targetMSISDN,plancode,CURRENT_TIMESTAMP from batch_list_tbl where scheduleID = ? and batch_list_status = 1",1);
preparedStatement.setString(1, dt.getValue("batchID"));
preparedStatement.setString(2, dt.getValue("scheduleID"));
batchID = preparedStatement.executeUpdate();
// batchID = preparedStatement.executeUpdate("insert into batch_processing_logs (batchID, targetMSISDN,plancode,createddate) select "+dt.getValue("batchID")+",targetMSISDN,plancode,CURRENT_TIMESTAMP from batch_list_tbl where scheduleID = "+dt.getValue("batchID")+" "
// +" and batch_list_status = 1");
con.commit();
System.out.println("INSERT QUERY: " + batchID);
if (batchID > 0) {
System.out.println("INSERT BATCH LOGS SUCCESSFUL" +dt.getValue("batchID")+dt.getValue("scheduleID"));
} else {
System.out.println("FAILED EXECUTIONS OF INSERT BATCH LOGS");
System.out.println(preparedStatement);
}
} catch (Exception exprep) {
System.out.println(exprep);
// Log("InsertBatchProcessingLogs Exception:" + exprep.getMessage());
exprep.printStackTrace();
batchID = -1;
}
return batchID;
}
Он всегда возвращает 0. Как вы можете видеть, есть отпечаток подготовленного состояния, поэтому, когда я пытаюсь сделать запрос вручную, он работает отлично.Я не знаю, почему он не работает на executeUpdate () :( Он также не печатаетStackTrace, ошибки не отображаются. Я много пробовал, даже закомментированные строки, и все равно не работает. Я не уверен, смотрю ли я в неправильном местеили нет. Я также попытался установить setAutoCommit (false), а затем зафиксировать его после executeUpdate. Также попытался установить setAutoCommit (true) и удалить код con.commit ().