Тъй като изпълненият оператор всъщност не е DML (напр. UPDATE , INSERT или EXECUTE ), но част от T-SQL, която съдържа DML, подозирам, че не се третира като заявка за актуализиране.
Раздел 13.1.2.3 от спецификацията JDBC 4.1 посочва нещо (доста трудно за тълкуване между другото):
Като се има предвид тази информация, предполагам, че executeUpdate() вътрешно прави execute() и след това - като execute() ще върне false - ще върне стойността на getUpdateCount() , което в този случай - в съответствие със спецификацията на JDBC - ще върне -1 .
Това допълнително се потвърждава от факта, 1), че Javadoc за Statement.executeUpdate()
казва:
И 2) че Javadoc за Statement.getUpdateCount() уточнява:
Само за пояснение:даден Javadoc за executeUpdate() поведението вероятно е грешно, но може да се обясни.
Освен това, както коментирах другаде, -1 може просто да показва:може би нещо е било променено, но ние просто не знаем или не можем да дадем точен брой промени (напр. защото в този пример това е част от T- SQL, който се изпълнява).