Skorpion81 Geschrieben 25. März 2004 Geschrieben 25. März 2004 Hallo ich habe eine Frage. DB ist MySQL Ich habe eine Tabelle Consultant (beinhaltet Consultant Id,Daten Name, Tel, Mail...) Dann habe ich eine Tabelle Skills(beinhaltet Id,Skillnamen und Beschreibung) Da jeder Consultant mehrere Skills haben kann gibt es eine Tabelle ConSkill (beinhaltet Id, SkillId, ConsultantId) Nun fülle ich ein Formular mit Consultantdaten und kreuze die Skills an, die der Consultant hat. Wenn ich das Formular abschicke sollen diese Daten in die DB eingefügt werden. Als erstes dachte ich mache ich einen Insert in die Tabelle Consultant. Dann gibt es den Consultant. Im nächsten Schritt wollte ich dann einen Insert in die Tabelle ConSkill machen. Wie bekomme ich aber die ID des Consultant raus, ohne z.B. ein Select Id from Consultant where Name like "Schulz"; durchzuführen, da dort ja theoretisch mehrere Schulz bei raus kommen können. Danke! Zitieren
Skorpion81 Geschrieben 25. März 2004 Autor Geschrieben 25. März 2004 Hinzuzufügen ist, dass ich nicht mit PHP arbeite sondern mit Java! Zitieren
kingofbrain Geschrieben 25. März 2004 Geschrieben 25. März 2004 Servus, der Thread wäre in der Javaecke besser aufgehoben. Vielleicht macht das ein Mod schnell. Zum Thema: In der Klasse Statement gibt es eine Methode getGeneratedKeys(). Die sollte Dir den erzeugten key zurückgeben. Dein Treiberhersteller sollte diese Methode implementiert haben. Das er per auto_increment erzeugt wird, setze ich voraus, da Du ja sonst wissen solltest, welchen key Du dem Datensatz gegeben hast. Peter Zitieren
Jaraz Geschrieben 25. März 2004 Geschrieben 25. März 2004 Hi, sollte der Vorschlag von kob nicht funktionieren, schau mal hier: http://www.mysql.com/doc/en/Getting_unique_ID.html Gruß Jaraz Zitieren
Skorpion81 Geschrieben 25. März 2004 Autor Geschrieben 25. März 2004 Danke! habe es mir LAST_INSERT_ID() gemacht. Obwohl es da bei einer Web Anwendung zu Problemen kommen könnte, oder? Zitieren
Jaraz Geschrieben 25. März 2004 Geschrieben 25. März 2004 Original geschrieben von Skorpion81 Obwohl es da bei einer Web Anwendung zu Problemen kommen könnte, oder? Wenn du eine Connection mit mehreren Servlet Instanzen benutzt, musst du über synchronized oder Transaktionen sicherstellen, das dir da keiner dazwischen funkt. Gruß Jaraz Zitieren
kingofbrain Geschrieben 26. März 2004 Geschrieben 26. März 2004 Servus nochmal, das mit den synchronisierten Transaktionen ist richtig, und zusätzlich muss man darauf achten, dass man sich immer in der gleichen VM befindet, weil synchronized nur in einer VM funktioniert. Bei geclusterten Systemen oder Zugriffen, die von verschiedenen RMI Instanzen kommen, muss man die Logik entsprechend erweitern (Stichwort: reliable group communication -> JGroups). Eine recht gute Doku ist die von JBoss (kostet aber). Das verwendet auch JGroups für geclusterte Systeme. Peter Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.