Announcement

Collapse
No announcement yet.

MySQL DBänderungen einer Java Applikation mitteilen?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MySQL DBänderungen einer Java Applikation mitteilen?

    Hallo Forum!

    Ich möchte eine Java Applikation schreiben, die auf Datenbankänderungen einer MySQL Datenbank reagiert. Sobald eine Zeile in einer Tabelle der MySQL DB hinzugefügt wurde (von einer anderen Java Applikation), soll die Änderung der Java Aplpikation mitgeteilt werden. Diese liest dann die neue Zeile ein und wertet sie entsprechend aus.

    Ich habe schon ein wenig im Forum gestöbert, bin aber nicht auf eine für mich befriedigende Lösung gestossen.

    Im Bezug auf MySQL habe ich etwas von Stored Prozedures gelesen, die bei Änderungen in einer Tabelle eine Funktion aufrufen können. Können die SP auch eine Java Methode aufrufen?

    Bezüglich Java habe ich da an einen Listener gedacht, der auf ein Event der MySQL DB wartet und dann entsprechend reagiert.

    Leider habe ich keine Möglichkeit gefunden um diese beiden Dinge irgendwie miteinander zu verbinden.

    Es wäre super wenn einer hier im Forum eine Möglichkeit weiß, mit der ich das Problem bewerkstelligen kann.

    Vielen Dank bereits im Voraus!
    Gruß Recco

  • #2
    Hallo Recco,

    MySQL bietet keine Möglichkeit eine stored procedure in Java zu schreiben (nur SQL). Es gibt zwar ein Java language plugin mit dem das im Prinzip möglich ist. Das ist aber noch sehr experimentell und man muß es selbst compilieren und mit MySQL zum laufen bringen. Keine Ahnung ob das vernünftig funktioniert und stabil ist.

    http://forge.mysql.com/wiki/ProjectP...red_Procedures

    Eine andere Möglichkeit außer einem Trigger der eben eine stored procedure aufruft fällt mir nicht ein. Eine Möglichkeit wäre ein Thread der sich mittels JDBC verbindet und andauernd pollt ob was neues da ist, was aber sicher nicht die tollste Lösung ist.

    Viele Grüße,

    Alwin

    Comment


    • #3
      Über die DB benachrichtig zu werden ist mit mysql praktich nicht machbar.
      Eine praktikable Möglichkeit wäre zum einen über Trigger Änderungen in einer Tabelle wegzuloggen und diese periodisch abzufragen, zum anderen über die Ändernde Applikation Messages zu versenden welche Sätze sich geändert haben.

      Beide Methoden sammeln natürlich Änderungen auf, ich weiß nicht ob das gewünscht ist. Andernfalls müsstest Du bei einem Programmstart immer erst auf einen initialen Stand kommen.

      Mal einfach so mit dem lesen eines HowTos ist das auf jeden Fall nicht hinzubekommen.

      Comment


      • #4
        Danke für die Antworten!

        Nach weiterer Recherche im Internet hab ich auch keine Infos mehr gefunden und werde die DB nun zyklisch abfragen.

        Gruß Recco

        Comment

        Working...
        X