Problemet er den måde, du henter data på i getStuff()
. Hver gang du besøger getStuff()
du får et nyt ResultSet
men du lukker den ikke.
Dette overtræder forventningen til Statement
klasse (se her - http://docs. oracle.com/javase/7/docs/api/java/sql/Statement.html
):
Som standard kan kun ét ResultSet-objekt pr. Statement-objekt være åbent på samme tid. Derfor, hvis læsningen af et ResultSet-objekt er sammenflettet med læsningen af et andet, skal hver af dem være genereret af forskellige Statement-objekter. Alle udførelsesmetoder i Statement-grænsefladen lukker implicit et udsagns aktuelle ResultSet-objekt, hvis der findes et åbent.
Det, der gør tingene endnu værre, er rs
fra opkaldskoden. Det er også afledt af Statement
felt, men det er ikke lukket.
Nederste linje:du har flere ResultSet
der vedrører den samme Statement
objektet åbnes samtidigt.