# AbstractMethodError bei Batchausführung?



## Reth (29. Jun 2004)

HAllo mal wieder,

habe in einer meiner Anwendungen bereits PreparedStatements mittels addBatch() und executeBatch() arbeiten lassen, klappte prima und zwar auf ner DB2.

Nun hab ich ne neue Anwendung und nehme ebenfalls eine DB2. Aber wenn ich nun Inserts mittels addBatch() executeBatch() ausführe bekomme ich zur Laufzeit nen AbstractMethodError???

Laut API-Doc des JDK sind aber beide Methoden nicht abstrakt! D.h. irgendwo in diesen Methoden wird wohl ne abstrakte gerufen (anders kann ichs mir nicht erklären).

Weiss jemand was da gespielt wird? Kann da jemand nen guten Rat geben?

Danke schon mal
Ciao


----------



## nollario (29. Jun 2004)

kannst du vielleicht den code und die fehlermeldung posten? denke nicht, dass der fehler beim treiber liegt,,, lass mich aber gerne überraschen...


----------



## Reth (30. Jun 2004)

Na klar doch:

Also in ids steht eine Menge von Werte, die gelöscht werden sollen.
Mein erster Ansatz mit DELETE FROM TABLE WHERE SPALTE IN (ids) schlug fehl, da das Transaktionsprotokoll jedesmal überläuft (sind wohl zuviele Daten).

Drum folgender Ansatz:


```
PreparedStatement delete = conn.prepareStatement("DELETE FROM TABLE WHERE SPALTE = ?");
												  
for (Iterator it=ids.iterator(); it.hasNext(); )
{
	delete.setString(1, (String)it.next());
	delete.addBatch();
}

delete.executeBatch();
```

Fehlermeldung dazu:

java.lang.AbstractMethodError
und zwar in der Zeile mit addBatch().

Nun hab ich in nem anderen Programm ebenfalls mit demselben DB2-Treiber (sollte jedenfalls so sein, hab keinen anderen Klassenpfad angegeben) bereits mit addBatch() und executeBatch() gearbeitet. Alles ohne Probleme.
Einziger Unterschied: Die DB2 für das andere Programm liegt auf dem Großrechner, diese hier auf nem Windows2000 Rechner. Aber das sollte eigentlich egal sein.

Ich verwende übrigens JDK1.3.1

Woran kann denn dieser Fehler liegen?

Danke
Ciao


----------



## Reth (30. Jun 2004)

Schien wohl doch am Treiber zu liegen. Habe nun den java12 Treiber aktiviert und es scheint zu tun.
Werds nochmal checken!


----------

