Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe hier im forum gesucht, aber nicht das gefunden was ich suchte.
Es geht um folgendes:
ich ändere über ein MySQL-Client (MySQL-Query-Browser oder MySQL-Control-Center) in einer MySQL-Datenbank in einer Tabelle einen Datensatz.
In meiner Java-Anwendung (die ich NICHT neu gestartet habe, sondern die immer noch läuft) klicke ich auf einen Button, der dafür sorgt, dass ein PreparedStatement an die MySQL-Datenbank abgesetzt wird und die den veränderten Datensatz anzeigen soll. Aber dies geschieht nicht: Es wird der ALTE Datensatz angezeigt. :bahnhof:
Wenn ich aber meine Application neu starte und auf den Button klicke, wird der neue Datensatz angezeigt.
Gibt es irgendwo (in der MySQL-DB oder im JDBC-Treiber (mysql-connector-java-3.1.12-bin.jar) eine Art Cache? In meiner Java-Application jedenfalls habe ich keinen Cache oder änliches eingebaut. Wie kann man dieses Caching ausschalten?
Da erst ein Neustart deiner Applikation den Fehler behebt tip ich ganz stark auf deine Applikation. Ich wüßt mal nicht das MySql so was cached, wär ja auch nicht im Sinn der Sache. Aber nur weil du nicht bewusst und beabsichtigt einen Cahe-Mechanismus in deine Applikation eingebaut hast heisst das nicht das du auch keinen drin hast, das nennt man dann Bug :wink:
Also an deinem Code beim Lesen sollte es nicht liegen (der sieht gut aus). Aber was ist mit dem Code zum Ändern des Satzes?
Hast du da in deiner Connection oder im Treiber AUTO-COMMIT aktiviert? Weil wenn nicht wird der Satz nur "temporär" in der DB geändert. Und mit COMMIT (Änderung speichern) oder ROLLBACK (Änderung verwerfen) kannst du dann entsprechend entscheiden.
Wenn ich mit meiner Vermutung richtig liege müsstest du dann also entweder nach der Satzänderung noch einen COMMIT mit absetzen oder AUTO-COMMIT aktivieren, kommt drauf an wie du das dann lieber hast.
Dass du die Daten nach einem Neustart der Anwendung dann siehst liegt (schätze ich mal) daran, dass beim Schließen der DB-Verbindung dann am Ende irgendwo doch automatisch ein COMMIT abgesetzt wird oder sowas in der Art.