как получить количество строк обновления в jdbctemplet Spring Java

#java #spring #spring-boot #spring-mvc #jdbctemplate

#java #весна #spring-boot #spring-mvc #jdbctemplate

Вопрос:

 int[][] updateCounts = jdbcTemplate.batchUpdate(QueryConstant.UPDATE_MERCHANT_STATUS,merchantList,1,
           new ParameterizedPreparedStatementSetter<Merchant>() {
           
           public void setValues(PreparedStatement ps, Merchant merchant)
              throws SQLException {
              ps.setString(1, merchant.getMerchantId());                        
           }
        }); 
        
        int a=0;
        for(int[] i : updateCounts) {
            System.out.println(updateCounts.length ":COUNT:" i[a]);
        }
        System.out.println(updateCounts[1][0] ":test:" updateCounts[0][0]);
  

Запрос, используемый в коде для обновления: update merchant set flag=’P’, где merchant_id в(‘1111′,’2222’,»);

У меня есть 3 разных параметра, и только две строки получают обновление, поскольку последнее значение пустое.

Я получаю sysout следующим образом: 3: COUNT:-2 3:COUNT:-2 3:COUNT:-2 -2:test:-2

Как я могу получить количество только затронутых (обновленных) строк?

Ответ №1:

При пакетном использовании подготовленного оператора -2 указывает, что операция выполнена успешно, но не удалось определить количество затронутых строк.

Поскольку вы используете размер пакета 1, нужен ли вам пакет в первую очередь? Можно использовать либо оператор, либо пакетную обработку можно игнорировать.