Objekten persistent in DB speichern, Konsistenz Objekte zur Laufzeit

  • Hi all!

    Angenommen man hat eine Datenklasse Student die in einer MySQL Tabelle abgebildet ist. Wenn ich jetzt z.B.: die Adresse ändere, führe ich zuerst das UPDATE in der Datenbank durch und hole mir dann alle aktiven studentenobjekte (Reflection?) und verwende die setter-Methoden, oder wie gewärhleiste ich am performantesten Konsistenz?
    Bin für jeden link oder jedes google stichwort dankbar.

  • Und ist es komplett "gestört" so zu arbeiten:

    Code
    //zuerst eintrag in die db
    mysql.update(newAddress);
    //dann kümmere ich mich um die laufzeit objekte
    Class student = Class.forName( "Student" ); 
    Class[] StudentObjects =  student.getClasses();
    for int(i=0;i<StudentObjects.length;i++{
    StudentObjects[i].setAddress(newAddress);
    }

    Es handelt sich um ein webservice, weiß nicht genau ob ich überhaupt objekte aus der db zur laufzeit erstelle, aber mich interessiert wie man generell diese konsistenzproblem angeht?

  • Ist der übliche Ansatz nicht, die Objekte bei jedem Zugriff neu aus der Datenbank zu holen? Damit erledigen sich alle Konsistenzprobleme.

    Außerdem glaub ich nicht, dass getClasses das macht, was du willst.
    http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html#getClasses()

    Ich glaub, Objekte irgendwo im Speicher zu halten, schafft mehr Probleme, als es Performancevorteile bringt. (Für kleinere Projekte jedenfalls). Und wenn dus trotzdem machen willst, musst du auf jedenfall entweder ein Studenten-Array verwenden oder irgendeine andere Art von Collection - Die Lösung oben macht relativ wenig Sinn.

    "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?"

  • Thx; selbstverständlich sollte man die objekte bei jedem zugriff neu aus der DB holen, frag mich nur gerade ob das bei sehr verteilten systemen wirklich so möglich ist. Aber dann müsste man wohl einen Thread schreiben bei dem sich das neu angelgte Objekt "anmelden" muss, und der diese immer aktuell hot...

  • Zitat von wuz_thomas

    zugriff neu aus der DB holen, frag mich nur gerade ob das bei sehr verteilten systemen wirklich so möglich ist.

    Nein, und in Sprachen wie Erlang, die (im Gegensatz zu Java) das Entwickeln von verteilten Systemen erleichtern, gibt es konsequenterweise auch gar keine Moeglichkeit, Objekte zu sharen. http://www.erlang.org

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!