Hallo,
an den Punkt, dass die Datenbank deine Verbindung wegen Inaktivität schließt, solltest du eigentlich nie kommen.
Stattdessen solltest du die Verbindung jedes Mal erneut öffnen, wenn du eine Aktion durchführen willst.
LG
Bitte WAS?
Du solltest einfach eine DateSource mit vernünftigem Timeout nutzen, die sich darum kümmert, dass die Verbindung immer in gutem Zustand ist. Wenn du für jede Query erst noch die Verbindung öffnen willst, kannst du dir die Datenbank eigentlich fast schon komplett sparen. Woher nimmt man sowas?
Und zum Problem von
@RazorShark. Du machst den gleichen Scheiß, wie dein Kollege in nem anderen Thread. Du öffnest ein ResultSet. Das sind echte Ressourcen, die im SQL Treiber gespeichert werden, wenn du die nicht korrekt wieder schließt, dann hast du Speicherlöcher und Ressourcenprobleme. Dazu kommt, dass dein ganzer Code auch einfach teils falsch ist, weil du mit dem Kontrollfluss und Exceptions überfordert scheinst. Das ist kein SQL Problem, das ist ein Grundlagenproblem, von daher auch an dich der Hinweis, dass du erstmal Programmieren lernen solltest, bevor du auch noch SQL mit in den Topf wirfst, denn momentan scheinst du verbissen darauf zu sein, dass du nur ein SQL Problem hast.
Diese ganzen "MySQL" Klassen und Scheiß, der hier immer und immer wieder ausgegraben und gepostet wird. Vermutlich von Youtube und anderen schlechten Quellen kopiert. Ist einfach Müll. Es hat einen Grund, warum die SQL API so funktioniert, wie sie funktioniert. Könnte man da einfach eine SQL-Klasse draus machen, dann hätte Oracle das schon gemacht. Datenbank sind halt einfach nicht so trivial wie eine YML Config. Da hängen komplexere Abläufe dahinter, weil man damit auch komplexe Anwendungen abdecken kann. Wer dann seine Datenbankoperationen noch im Hauptthread macht, weiß besser ganz genau was er tut, denn sonst gibt es richtig böse Lags. Im übrigen auch ein Irrglaube, dass man mit einer Datenbank bessere Performance hat. Solange die Daten auch einfach in den RAM passen ist das immer die einfacherere Lösung.