Alle in den SQL-Anweisungen übergebenen Daten müssen in Form von Literalen übergeben werden. Von keiner der SQL-Anweisungen können ResultSet-Objekte zurückgegeben werden.
Zum Starten einer Aktualisierung im Stapelbetrieb ruft die Anwendung folgende Version der Methode updateMany() auf:
int[] updateMany(String... heterogeneousBatchSQL)
Der Parameter heterogeneousBatchSQL kann eine Liste einzelner SQL-Anweisungen oder ein Array von String-Objekten mit SQL-Anweisungen darstellen. Die folgenden beiden Beispiele zeigen die verschiedenen Methode zum Übergeben der SQL-Anweisungen:
String insertDept = "insert into dept values("+dept.no+",'"+dept.name+"')"; String insertEmp = "insert into emp values("+emp.id+",'"+emp.name+"','"+emp.ssn+"',"+emp.dept_no+")"; String insertEmpProj = "insert into emp_proj values("+emp.id+","+dept.no+")"; int[] updateCounts = myData.updateMany (insertDept, insertEmp, insertEmpProj); String[] sqlArray = new String[3]; sqlArray[0] = insertDept; sqlArray[1] = insertEmp; sqlArray[2] = insertEmpProj; int[] updateCounts = myData.updateMany (sqlArray);
Die Methode gibt ein Integer-Array zurück, das die gleiche Anzahl Elemente wie bereitgestellte SQL-Anweisungen enthält. Dieses Array enthält die gleichen Informationen, die die Methode Statement.executeBatch() in JDBC zurückgibt.
Wenn Sie mit Annotationen versehene Methoden verwenden und die Methode updateMany() aufrufen wollen, finden Sie entsprechende Informationen in Benutzerdefinierte Klassen aus generierten Implementierungsklassen erweitern. Sie können die Methode updateMany() wie folgt aufrufen:
int[] updateCounts = updateInf.updateMany (hetrogeneousBatchSQL); updateInf.commit ();
Werden SQL-Ausnahmebedingungen (SQLExceptions) vom JDBC-Treiber zurückgegeben, sind sie in einer Ausnahmebedingung UpdateManyException eingeschlossen.
Wenn vom JDBC-Treiber oder von der Datenbank eine SQLException zurückgegeben wird, wird durch die Methode updateMany() ein com.ibm.pdq.runtime.exception.UpdateManyException ausgelöst. Sie können ein Array mit dem Aktualisierungszähler abrufen, indem Sie die Methode UpdateManyException.getUpdateCounts() aufrufen.
Sie können die ursprüngliche SQLException (oder mehrere SQLExceptions) abrufen, indem Sie die Methode UpdateManyException.getCause() aufrufen. Weil vom JDBC-Treiber mehrere SQLExceptions zurückgegeben werden können, werden diese Ausnahmebedingungen miteinander verkettet. Sie können Sie durch Aufrufen der Methode SQLException.getNextException() abrufen, die so lange eine SQLException zurückgibt, bis keine weiteren SQLExceptions mehr vorhanden sind. An diesem Punkt wird dann null zurückgegeben.