Можно ли автоматически фиксировать коммиты в пакет? - PullRequest
2 голосов
/ 06 октября 2010

Есть ли способ автоматически помещать несколько обновлений в пакеты?Например, преобразуйте эту программу:

PreparedStatement prepStmt = con.prepareStatement("UPDATE DEPT SET MGRNO=? WHERE DEPTNO=?");            
prepStmt.setString(1,mgrnum1);                          
prepStmt.setString(2,deptnum1);
prepStmt.executeUpdate();                                    

prepStmt.setString(1,mgrnum2);                        
prepStmt.setString(2,deptnum2);
prepStmt.executeUpdate();

con.commit();       

в эту программу:

connection con.setAutoCommit(false);                  
PreparedStatement prepStmt = con.prepareStatement(    
  "UPDATE DEPT SET MGRNO=? WHERE DEPTNO=?");            
prepStmt.setString(1,mgrnum1);                          
prepStmt.setString(2,deptnum1);
prepStmt.addBatch();                                    

prepStmt.setString(1,mgrnum2);                        
prepStmt.setString(2,deptnum2);
prepStmt.addBatch();
int [] numUpdates=prepStmt.executeBatch();              
for (int i=0; i < numUpdates.length; i++) {             
  if (numUpdates[i] == -2)
    System.out.println("Execution " + i + 
      ": unknown number of rows updated");
  else
    System.out.println("Execution " + i + 
      "successful: " numUpdates[i] + " rows updated");
}
con.commit();

Может ли это преобразование выполнить компилятор автоматически?Какая работа была проделана над этим?

Спасибо, база данных noob.

Ответы [ 2 ]

1 голос
/ 06 октября 2010

Потенциально вы можете использовать (или кодировать себя) что-то вроде Spring JDBCTemplate, чтобы дать вам некоторое шаблонное поведение (например, commit в конце некоторых пакетов), но, как утверждает @Peter G., это не тот компилятор, который будет делать автоматическиэто ваш (или сторонний) код.

AOP - это еще один вариант, если вы действительно хотите реализовать это.

1 голос
/ 06 октября 2010

Компилятор может выполнить это преобразование, но я не знаю ни одного компилятора, который это делает

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