Hallo,
in einer HashSet befinden sich meine Objekte. Ein Objekt besteht aus mehreren Strings.
Nun möchte ich die einzelnen Elemente der HashSet in die DB eintragen.
Dazu durchlaufe ich die HashSet mittels einem Iterator, suche in der MySQL-DB erstmal ob das Objekt darin schon existiert und nur wenn dieses nicht vorhanden ist, wird ein executeUpdate ausgeführt.
Die DB ist komplett leer.
Mittels zweiCounter überprüf ich, wie oft das executeUpdate ausgeführt wird und ob alle Elemente der HashSet durchlaufen werden.
Sobald das executeUpdate auskommentiert ist, durchläuft der Iterator alle Elemente der HashSet und würde alle in der DB eintragen (count = count2=4000). Aber sobald das executeUpdate drinsteht, werden ca. nur 300 Elemente in die DB eingetragen und auch nur so viele in der HashSet durchlaufen (coutn=count2=300)
Hab keine Ahnung woran das liegen könnt.
Ein Insert mittels addBatch geht ned, da ich zuvor prüfen muss, ob das Objekt schon in der DB eingetragen ist.
in einer HashSet befinden sich meine Objekte. Ein Objekt besteht aus mehreren Strings.
Nun möchte ich die einzelnen Elemente der HashSet in die DB eintragen.
Dazu durchlaufe ich die HashSet mittels einem Iterator, suche in der MySQL-DB erstmal ob das Objekt darin schon existiert und nur wenn dieses nicht vorhanden ist, wird ein executeUpdate ausgeführt.
Die DB ist komplett leer.
Mittels zweiCounter überprüf ich, wie oft das executeUpdate ausgeführt wird und ob alle Elemente der HashSet durchlaufen werden.
Sobald das executeUpdate auskommentiert ist, durchläuft der Iterator alle Elemente der HashSet und würde alle in der DB eintragen (count = count2=4000). Aber sobald das executeUpdate drinsteht, werden ca. nur 300 Elemente in die DB eingetragen und auch nur so viele in der HashSet durchlaufen (coutn=count2=300)
Hab keine Ahnung woran das liegen könnt.
Code:
public void anfrage2(HashSet<DBInformation> pqSet)
{
HashSet<DBInformation> allInfos = pqSet;
System.out.println("Einträge in der HahsSet-allInfos: "+allInfos.size());
try
{
con = DriverManager.getConnection(url, username, password);
for ( Iterator<DBInformation> j = allInfos.iterator(); j.hasNext(); )
{
DBInformation s = j.next();
count++;
rs= con.createStatement().executeQuery("Select * From dtc Where DTC = "+s.getDtcDez());
//Springt ans Ende der ResultSet um überprüfen zu können, wie viele Zeilen die ResultSet hat
rs.last();
if(rs.getRow()==0)
{
stmt = con.createStatement();
stmt.executeUpdate("Für den Forumspost gelöscht");
stmt.close();
count2++;
}
rs.close();
}
}
catch(SQLException e)
{
e.printStackTrace();
}
if(con!=null)
{
try
{
con.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
Ein Insert mittels addBatch geht ned, da ich zuvor prüfen muss, ob das Objekt schon in der DB eingetragen ist.