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.
Compiler-FehlerWert auf Datenbank übertragen und Sleep Thread
Ich habe gerade ein Probleme mit dem Einfügen eines Wertes in einer Datenbank und einem Sleep Thread. Aber eines nach dem anderen. Ich habe eine insertdb Klasse, die sich mit der Datenbank verbindet. Der Code ist in Netbeans geschrieben und die Datenbank würde mit MYSQL Workbench erstellt
Der Getter FreieParkplätze soll seinen Wert aus einer anderen Klasse holen, der die Anzahl widergibt. Aber so wie jetzt funktioniert der Code nicht, er holt die Anzahl nicht aus dem get.FreieParkplätze. Es kommt ein Compiler Fehler, das er get.FreieParkplätze nicht findet. Die Klassen sind alle public.
Das zweite Problem ist, dass ich einen Sleep Thread erstellt habe, der diesen insertdb nur jede volle Stunde ausführen soll. Aber das klappt auch nicht so wirklich, ich weiß nicht wie ich diesen nur für die insertdb Klasse ausführen.
Zum ersten Problem:
Zeig doch mal, wie deine anderen Klassen aussehen.
Den Ausdruck get.FreieParkplätze() halte ich für ziemlich suspekt.
Zum zweiten Problem:
Java:
t.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
try {
insertIntoDb();
} catch (Exception e) {
throw new RuntimeException("Could not insert into database", e);
}
}
}, 0, 1, TimeUnit.HOURS);
Dabei ist "insertIntoDb()" eine Methode, die eben genau den Code enthält, um einen Datensatz in die Datenbank einzufügen (wie von dir oben gezeigt).
Du brauchst auch nicht Thread.sleep() aufzurufen, da der ExecutorService bzw. dein scheduleAtFixedRate(..., 0, 1, TimeUnit.HOURS) ja schon dafür sorgt, dass das Runnable 1 Mal pro Stunde ausgeführt wird.
public class FahrzeugBean {
public int getFreieparkplätze() {
return freieparkplätze;
}
private void setFreieparkplätze(int freieparkplätze) {
this.freieparkplätze = freieparkplätze;
}
int freieparkplätze = Fahrzeuganzahl.getFreieParkplätze();
}
Das ist der Code der eine Anzahl der freien Parkplätze überliefert bekommt, das funktioniert auch. Von der Klasse möchte ich dann eben die Anzahl jede Stunde überliefern.
Ahja ok, also hab ich das doppelt gemoppelt gemacht. Das mit dem insertintoDB funktioniert dann einfach so? Weiß nicht genau wie ich die Methode schreiben soll und wo.
Dann brauchst du ja erstmal eine Instanz der Klasse FahrzeugBean.
Nennen wir sie mal "fahrzeugBean" und nehmen wir auch an, dass es ein Feld in der Klasse mit deinem Datenbank-Statement ist. So dann würde dein Code so aussehen: