Запрос вставки executeUpdate возвращает 0, но работает при вставке вручную - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть несколько экземпляров подготовленных состояний, все они работают и все зафиксированы.За исключением того, что этот блок кода не работает:

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 ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...