Hallo!
In meiner Einfügemethode wird eine ArrayListe vom Typ BewerberBeruf übergeben. Die Daten dieser Liste sollen durch eine Schleife und mit einem Batchupdate in die Datenbank eingefügt werden. Die Daten in der Liste kommen auch so weit an, jedoch wird immer nur der letzte Eintrag der ArrayListe in die Datenbank eingetragen. Das heißt für mich, es gibt eine Fehler in meine Programmierung des Batchupdates. Bisher kann ich ihn jedoch nicht so richtig eingrenzen. Bitte werft mal ein Auge auf meine Methode. Vielleicht könnt ihr mir den Fehler zeigen. Danke!
In meiner Einfügemethode wird eine ArrayListe vom Typ BewerberBeruf übergeben. Die Daten dieser Liste sollen durch eine Schleife und mit einem Batchupdate in die Datenbank eingefügt werden. Die Daten in der Liste kommen auch so weit an, jedoch wird immer nur der letzte Eintrag der ArrayListe in die Datenbank eingetragen. Das heißt für mich, es gibt eine Fehler in meine Programmierung des Batchupdates. Bisher kann ich ihn jedoch nicht so richtig eingrenzen. Bitte werft mal ein Auge auf meine Methode. Vielleicht könnt ihr mir den Fehler zeigen. Danke!
Java:
public boolean addBatch(ArrayList<BewerberBeruf> bewBer) throws SQLException, ClassNotFoundException {
int[] updateCount = null;
boolean isUpdated = false;
conn = AllowConnect.driver(this.user, this.password, this.dburl, this.className);
for (int i = 0; i < bewBer.size(); i++) {
stmt = conn.prepareStatement("INSERT INTO `Arbeitnehmer-Berufe` "
+ "(`Arbeitnehmer-Berufe`.`AN-ID`, "
+ "`Arbeitnehmer-Berufe`.`Wertigkeit`, "
+ "`Arbeitnehmer-Berufe`.`Beruf`, "
+ "`Arbeitnehmer-Berufe`.`Spez`) "
+ "VALUES (?,?,?,?)");
stmt.setInt(1, bewBer.get(i).getBewBerufPId());
stmt.setInt(2, bewBer.get(i).getWertigkeit());
stmt.setString(3, bewBer.get(i).getBeruf());
stmt.setString(4, bewBer.get(i).getSpez());
stmt.addBatch();
}
updateCount = stmt.executeBatch();
conn.commit();
if (updateCount.length > 0) {
isUpdated = true;
System.out.println("Updatecount"+updateCount.length);
}//if
//stmt.executeUpdate();
} catch (BatchUpdateException e) {
e.printStackTrace();
conn.rollback();
return false;
}
}//if
conn.close();
return isUpdated;
}//addBatch