Toon posts:

[Java] Korte vraag over insert ID

Pagina: 1
Acties:

Verwijderd

Topicstarter
Wat is ook alweer de methode om na een insert query het ID van het record terug te krijgen? Iets als mysql_id() in PHP.

Kan er zo snel niet op komen, en de search geeft alleen maar resultaten over hoe het in PHP moet :/

Verwijderd

Je kan in ieder geval de volgende select query uitvoeren om het id op te halen:

SELECT LAST_INSERT_ID()

Verwijderd

Topicstarter
Hmmm, het moet database onafhankelijk zijn. Bij sommige klanten werken ze met oracle.

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Dat heeft imho niets met java te maken, maar heeft alles te maken met het type DBMS.

In PHP heb je dus die functie mysql_id, maar dat werkt dus enkel bij MySQL. Als je een PHP app schrijft die connect met een SQL Server , zal dat ook niet werken.

Het is dus database afhankelijk;
in SQL Server is het bv : SELECT @@identity, in MySQL is het SELECT last_insert_id(), ....

https://fgheysels.github.io/


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Gewoon even de API docs doorkijken. In de klasse Statement is er een methode getGeneratedKeys, die iets oplevert als je op de goede manier je update hebt uitgevoerd.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Verwijderd schreef op 14 maart 2003 @ 16:07:
Je kan in ieder geval de volgende select query uitvoeren om het id op te halen:

SELECT LAST_INSERT_ID()
Dat gaat lachen worden als je met meerdere mensen op 1 db zit.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
whoami: Het is dus database afhankelijk
Inderdaad, er zijn geen voorzieningen in SQL, maar bij Sun zijn ze ook niet gek en hebben ze de noodzaak hiervan dus ingezien. Via JDBC kan je deze gegevens benaderen, wat betekent dat het in de driver database specifiek geimplementeerd is, maar dat je het generiek kan behandelen omdat de JDBC driver de specifieke zaken verzorgt.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Alarmnummer schreef op 14 March 2003 @ 16:17:
[...]

Dat gaat lachen worden als je met meerdere mensen op 1 db zit.
Of niet :)

MSSQL kent ook SCOPE_IDENTITY, en de naam geeft al aan dat dit geen concurrency-problemen oplevert.
Ik neem aan dat andere DBMS'en vergelijkbare functies kennen, en dat de JDBC-driver dus daar rekening mee houdt.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 10:56
Alarmnummer schreef op 14 March 2003 @ 16:17:
[...]

Dat gaat lachen worden als je met meerdere mensen op 1 db zit.
Gelukkig maar dat de makers van MySQL ook van concurrency gehoord hebben en dat dit statement per sessie geld. (net getest, kreeg van sessie 1 netjes id 1, terwijl ik tussen door sessie 2 ook een row heb laten toevoegen)

[ Voor 18% gewijzigd door Jelmer op 14-03-2003 16:28 ]


Verwijderd

Topicstarter
Het geraakt nu wel offtopic. Het gaat over Java, niet MySQL :P

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:37
Verwijderd schreef op 14 March 2003 @ 16:34:
Het geraakt nu wel offtopic. Het gaat over Java, niet MySQL :P


Ik denk dat mbravenboer je toch al een duw in de goeie richting geeft....

https://fgheysels.github.io/


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Je hebt toch al een antwoord? Het topic is dan vogelvrij :P .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1