sql >> Base de Datos >  >> RDS >> Mysql

Obtener java.sql.SQLException:operación no permitida después de cerrar ResultSet

El problema está en la forma en que obtienes datos en getStuff() . Cada vez que visita getStuff() obtienes un nuevo ResultSet pero no lo cierras.

Esto viola la expectativa de la Statement clase (ver aquí - http://docs. oracle.com/javase/7/docs/api/java/sql/Statement.html ):

De forma predeterminada, solo se puede abrir un objeto ResultSet por objeto Statement al mismo tiempo. Por lo tanto, si la lectura de un objeto ResultSet se intercala con la lectura de otro, cada uno debe haber sido generado por diferentes objetos Statement. Todos los métodos de ejecución en la interfaz de declaración cierran implícitamente el objeto ResultSet actual de una declaración si existe uno abierto.

Lo que empeora aún más las cosas son los rs del código de llamada. También se deriva de la statement campo pero no está cerrado.

En pocas palabras:tiene varios ResultSet perteneciente a la misma Statement objeto abierto al mismo tiempo.