Cuando ejecutas Delete consulta, utiliza la misma Statement que se utilizó en Select consulta. Cuando vuelve a ejecutar en la misma Statement , el ResultSet anterior se cierra
Para evitar esto, debe crear una nueva Statement cada vez que ejecuta una consulta. Así que elimine statement = connection.createStatement(); desde el connect() método en MySQLDatabase class, y reemplace todas las statement en esa clase a connection.createStatement() . También puede optar por eliminar la variable privada statement en total.
Puede leer más al respecto aquí .