Het probleem zit hem in de manier waarop je gegevens ophaalt in getStuff()
. Elke keer dat u getStuff()
. bezoekt u krijgt een nieuwe ResultSet
maar je sluit hem niet.
Dit is in strijd met de verwachting van de Statement
class (zie hier - http://docs. oracle.com/javase/7/docs/api/java/sql/Statement.html
):
Standaard kan er slechts één ResultSet-object per Statement-object tegelijkertijd geopend zijn. Als het lezen van het ene ResultSet-object wordt afgewisseld met het lezen van een ander, moet elk object dus zijn gegenereerd door verschillende Statement-objecten. Alle uitvoeringsmethoden in de Statement-interface sluiten impliciet het huidige ResultSet-object van een statement als er een open bestaat.
Wat het nog erger maakt, zijn de rs
van de oproepcode. Het is ook afgeleid van het statement
veld, maar het is niet gesloten.
Kort gezegd:je hebt verschillende ResultSet
met betrekking tot dezelfde Statement
object gelijktijdig geopend.