MySQl - Neue Datensätze "on the Fly" verarbeiten

Spr3ng

Mitglied
Hallo,

ich schreibe zur Zeit einen kleinen IRC Bot.
Dieser soll auf alle IRC Netzte connecten, die in einer Datenbank stehen.

Das sieht zur Zeit so aus:

Java:
//Alle Server connecten 
			rs = stmt.executeQuery("SELECT * FROM server");
			while (rs.next()) {
				
				String server_url = rs.getString(1);
				int port = rs.getInt(2);
				
				IrcBot bot = new IrcBot();
				
				bot.connect(server_url,port);
				
			}

Funktioniert auch sehr gut, allerdings muss ich jedesmal das Java Programm neustarten, wenn ich einen neuen IRC Server in die DB eingetragen habe, damit für diesen auch eine Bot Instanz eröffnet wird.

Meine Frage ist nun, ist es möglich Java zu veranlassen, bei einem neuen Eintrag in der DB eine Instanz mit den neu eingetragenen Werten zu starten?

Gruß
 

Bartleby

Aktives Mitglied
Du darfst dann nicht nur einmal die DB durchsuchen, sondern benötigst einen extra Thread, der z.B. alle 10 Minuten neu in der DB nachschaut, ob Einträge hinzugekommen sind, zu denen noch keine Connection besteht.
 

Firestorm87

Bekanntes Mitglied
Naja wer sagt denn, dass du diese Abfrage nur beim Start den programmes machen darfst?

Du könntest das ganze auch auf einen Button legen oder automatisch alle halbe Stunde durchlaufen, oder oder oder....

Du müsstest dir dann nur merken, für welche Hosts bereits eine Instanz läuft...

/EDIT: kacke überholt worden ;(
 

Spr3ng

Mitglied
Zum einen, wie kann ich mir "merken" wo schon connected wurde.

Zum anderen geht es mir ja nicht darum, irgendeinen Button drücken zu müssen oder so ne alle 10min schleife reinzubasteln sonder ob es möglich ist, dass java erkennt, das ein neuer eintrag da ist und ihn dann verarbeitet.

Trotzdem danke schonmal für eure ideen!
 

Firestorm87

Bekanntes Mitglied
Naja so lange die Datenbank sich nicht bei dienem Java-Programm melden kann, kann das Programm ohne eine überprüfung auch nicht wissen, ob was neues da ist.

Gedanken lesen kann Java leider nicht... und Datenbanken verschicken auch keine Mails an dein Java Programm, wenn Sie neue Elemente enthalten :)

Zum "merken" gibt es listen, Arrays, sets, textdatein... es würd ja genügen zu wisssen, ob die url doppelt ist...
 

Bartleby

Aktives Mitglied
Eine automatische Benachrichtigung funktioniert, wie schon gesagt wurde, nicht. Du könntest es so in der Art lösen:

Java:
Map<String, IrcBot> server = new HashMap<String, IrcBot>();

while(true){
   rs = stmt.executeQuery("SELECT * FROM server");
   while (rs.next()) {
       String server_url = rs.getString(1);
       if ( !server.contains(server_url) ) {
           int port = rs.getInt(2);
           IrcBot bot = new IrcBot();
           bot.connect(server_url,port);

           server.put(server_url, bot);
       }               
   }

   Thread.sleep(600000)
}

Oder du speicherst dir in der DB immer das Hinzugefügt-Datum, merkst dir das letzte Datum in deinem Programm und fährst dann direkt eine DB-Abfrage mit einer where-Einschränkung auf das letzte gemerkte Datum.
 
Zuletzt bearbeitet:
G

Gast2

Gast
Mit einer Oracle könntest du UTL_HTTP oder UTL_TCP in Verbindung mit einem Trigger benutzen um nach einem INSERT deine Java App zu callen. MySQL kann das allerdigns nicht, könntest höchstens einen MySQL Proxy dazwischenschalten der bei einem INSERT deine Java App benachrichtigt.

MYSQL ::
 

Tharsonius

Bekanntes Mitglied
Wenn Du das eintragen der IRC Server ebenfalls durch Dein Programm machst, dann würde es sich doch anbieten diese neu hinzugefügte Instanz direkt zu starten oder zumindest zu prüfen, was noch nicht läuft.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G neue benutzer anlege in mysql Datenbankprogrammierung 3
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
S Verbindungsaufbau zu MySql Datenbank nicht möglich Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben