Hallo ich habe eine Klasse die auf einem MySQL Server nach neuen Einträgen in einer Tabelle sucht. Das Ganze will ich in einem While() laufen lassen um permanent zu pollen.
Jedoch ist das Problem, dass das einmal gebildete Objekt und das ResultSet beim nächsten Durchlauf nicht aktualisiert werden, obwohl der in Hintergrund gelöschte Datensatz gar nicht mehr existiert. Nehme ich den loop für Testzwecke raus, dann ist beim nächsten Start alles wie es sein soll.
Ich kann ja nicht bei jedem Lauf die Objektvariable hochzählen. Gibt es eine Möglichkeit das Objekt s oder das ResultSet rs so zu killen, damit es beim nächsten Durchlauf erneut erzeugt wird?
s = null; oder rs = null; bewirken nichts.
Vielen Dank im Voraus
Ralf
Jedoch ist das Problem, dass das einmal gebildete Objekt und das ResultSet beim nächsten Durchlauf nicht aktualisiert werden, obwohl der in Hintergrund gelöschte Datensatz gar nicht mehr existiert. Nehme ich den loop für Testzwecke raus, dann ist beim nächsten Start alles wie es sein soll.
Ich kann ja nicht bei jedem Lauf die Objektvariable hochzählen. Gibt es eine Möglichkeit das Objekt s oder das ResultSet rs so zu killen, damit es beim nächsten Durchlauf erneut erzeugt wird?
s = null; oder rs = null; bewirken nichts.
Java:
package myhome;
import java.sql.*;
import java.util.Arrays;
public class Eventmgr {
private static boolean loop = false;
private static int loop_count = 2;
private static String in_id;
private static String in_nummer;
private static String in_text;
private static String in_typ;
public static void start() throws SQLException {
//Verbindung zum SQL-Server herstellen
while(loop_count > 0) {
//Loop an oder aus für Testzwecke
if (loop == false) {
loop_count = loop_count -1;}
//SQL Neue Datensätze holen
SQL s = new SQL();
s.connect();
ResultSet rs = s.abfrage("select id, nummer, text, typ from inbox order by id asc limit 1") ;
while(rs.next()) {
in_id = rs.getString("id");
in_nummer = rs.getString("nummer");
in_text = rs.getString("text");
in_typ = rs.getString("typ");}
s.close();
System.out.println(in_nummer);
// [Entscheiden welche Art Datensatz es ist]
if (in_typ != null) {
if (in_typ.contains("SMS")) {
//SMS:
//Prüfen ob der Berechtigte existiert, der oder die Befehle gültig sind und die Rechte dazu existieren.
Befehle.extrahieren(in_id, in_nummer, in_text);}
else if (in_typ.contains("intern")) {
//intern
Befehle.extrahieren(in_id, in_text);}
else if (in_typ.contains("@")) {
//@Befehl@
Befehle.extrahieren_lang(in_id, in_nummer, in_text);}
}
//rs = null;
System.out.println(s);
}
}
}
Vielen Dank im Voraus
Ralf