mySql - PreparedStatement: Batch () - PullRequest
       8

mySql - PreparedStatement: Batch ()

0 голосов
/ 14 марта 2019

Привет, 1001 *

**** решаемый *****

У меня проблема с этой партией подготовительного заявления ()

Метод обработан, - нет ошибок ... Но нет данных в таблице. Я пытался решить эту проблему, читая много, но я просто не могу это исправить. (Я совершенно новичок в batch (), может, я все неправильно понял.

  • Я надеюсь, что есть человек с немного большим опытом, чем я, который, возможно, подскажет мне. - спасибо

private MovieEvent addMovieEventSeatsToTable (событие MovieEvent, список мест, int currentMovieEventId) {

    DataSource ds = Jdbc.getDataSource();
    String tableId = "movieEvent" + String.valueOf(currentMovieEventId);

    String SQL_EVENT_SEATS = "INSERT INTO " + tableId + "(seatId, isReserved) " + "VALUES(?,?) ";

    try (Connection connection = ds.getConnection();
         PreparedStatement preparedStatement = connection.prepareStatement(SQL_EVENT_SEATS);) {

        int cnt = 0;

        // Fill table with seats:
        for (int i = 0; i < seats.size(); i++) {

            String seatId = seats.get(i).getSeatId();
            boolean isReserved = seats.get(i).isReserved();

            preparedStatement.setString(1, seatId);
            preparedStatement.setBoolean(2, isReserved);
            preparedStatement.addBatch();
            cnt++;

            // More than 100 in a batch - execute
            if (cnt % 100 == 0 || cnt == seats.size()) {
                preparedStatement.executeBatch();
                preparedStatement.clearBatch();
            }
        }

    } catch (SQLException sqlEx) {
        log.info(sqlEx.getSQLState());
    }

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