Lorsque vous exécutez la commande Delete requête, vous utilisez le même Statement qui a été utilisé dans le Select requête. Lorsque vous réexécutez sur le même Statement , le ResultSet précédent se ferme.
Pour éviter cela, vous devez créer un nouveau Statement chaque fois que vous exécutez une requête. Supprimez donc statement = connection.createStatement(); depuis le connect() méthode dans MySQLDatabase class et remplacez tous les statement dans cette classe à connection.createStatement() . Vous pouvez également choisir de supprimer la variable privée statement tout à fait.
Vous pouvez en savoir plus à ce sujet ici .