Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Pobieranie java.sql.SQLException:operacja niedozwolona po zamknięciu zestawu wyników

Problem dotyczy sposobu pobierania danych w getStuff() . Za każdym razem, gdy odwiedzasz getStuff() otrzymujesz nowy ResultSet ale nie zamykasz tego.

To narusza oczekiwania Statement klasa (patrz tutaj - http://docs. oracle.com/javase/7/docs/api/java/sql/Statement.html ):

Domyślnie w tym samym czasie może być otwarty tylko jeden obiekt ResultSet na obiekt Statement. Dlatego też, jeśli odczyt jednego obiektu ResultSet jest przeplatany odczytem innego, każdy musi być wygenerowany przez inny obiekt Statement. Wszystkie metody wykonania w interfejsie Statement domyślnie zamykają bieżący obiekt ResultSet instrukcji, jeśli istnieje otwarty.

Co jeszcze gorzej, to rs z kodu wywołującego. Jest również pochodną statement pole, ale nie jest zamknięte.

Konkluzja:masz kilka ResultSet odnoszące się do tego samego Statement obiekt jednocześnie otwarty.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL dzielony wiersz oddzielony przecinkami

  2. Jak usunąć z zaznaczonych w MySQL?

  3. Zapytanie o wybór między serwerami MySQL

  4. Wybierz 3 najnowsze rekordy, w których wartości jednej kolumny są różne

  5. Jak automatycznie generować migracje za pomocą Sequelize CLI z modeli Sequelize?