Veröffentlicht 25. März 200421 j 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!
25. März 200421 j 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
25. März 200421 j Hi, sollte der Vorschlag von kob nicht funktionieren, schau mal hier: http://www.mysql.com/doc/en/Getting_unique_ID.html Gruß Jaraz
25. März 200421 j Danke! habe es mir LAST_INSERT_ID() gemacht. Obwohl es da bei einer Web Anwendung zu Problemen kommen könnte, oder?
25. März 200421 j 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
26. März 200421 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.