sql >> Database teknologi >  >> RDS >> Mysql

Henter java.sql.SQLEundtagelse:Betjening er ikke tilladt efter ResultSet lukket

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.



  1. MySQL udenlandsk nøgle begrænsninger, kaskade sletning

  2. Sådan droppes en kolonne med en begrænsning i SQL Server

  3. hvordan man får adgang til kommandolinjen for xampp på Windows

  4. ORA-00932:inkonsistente datatyper:forventet - fik CLOB