U geeft aan dat u batches SQL-instructies uitvoert, dus ik neem aan dat u executeBatch
gebruikt . Wanneer u Batch uitvoert
een reeks verklaringen, kunnen sommige van de verklaringen slagen en kunnen sommige van de verklaringen mislukken. Als een instructie mislukt, betekent dat niet dat het JDBC-stuurprogramma de geslaagde instructies terugdraait. Het JDBC-stuurprogramma kan ervoor kiezen om alle instructies in de batch uit te voeren als één instructie mislukt, of het kan ervoor kiezen om te stoppen met het uitvoeren van instructies in de batch zodra een instructie mislukt (het klinkt alsof het stuurprogramma dat u gebruikt ervoor kiest om te stoppen met het uitvoeren van instructies als zodra er een storing is).
Wanneer een instructie in een batch mislukt, moet u een BatchUpdateException
. krijgen . In uw uitzonderingshandler moet u getUpdateCounts
. aanroepen . Dat geeft je een array van int
die u vertelt hoeveel rijen de instructie heeft bijgewerkt, een Statement.SUCCESS_NO_INFO
wat aangeeft dat de instructie is geslaagd maar dat er geen rijtelling beschikbaar was, of een Statement.EXECUTE_FAILED
waaruit blijkt dat de verklaring is mislukt. Als de eerste 99 instructies slagen, de 100e instructie een fout genereert en de overige instructies niet worden uitgevoerd, moet u een array van 100 elementen terugkrijgen waarbij de eerste 99 elementen succes aangeven en het 100e element Statement.EXECUTE_FAILED aangeeft. code> . Uw code zou dan de instructies die niet zijn uitgevoerd opnieuw moeten proberen (in dit geval de instructies 101-1000).