Java – MySql – Beim Insert die angelegte ID des Primary Keys zurück bekommen

Beim Programmieren hatte ich eine für mich neue Anforderung: Ich wollte direkt nach dem Insert in die Datenbank den Primary Key des angelegten Datensatzes zurück bekommen. Die Lösung fand sich schnell im Netz und ich will sie aber für zukünftige Recherchen meinerseits gleich hier in meinem “Knowledge-Fundus” hier hinterlegen:

String insertQuery = "INSERT INTO TABLE (…) VALUES (?,?,?)";
PreparedStatement ps = db.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
ps.setInt(1,…);
ps.setInt(2,…);
ps.setInt(3,…);
ps.execute();
ResultSet rs = ps.getGeneratedKeys();
Integer idPrimarykey = null;
if (rs.next()){
idPrimarykey=rs.getInt(1);
}
return idPrimarykey; 

Das Kommando klappt in meinem Beispiel hervorragend mit MySql. Damit konnte ich diekt aus dem Insert den Primary Key ermitteln und direkt weiterverarbeiten.

Eclipse debug stoppt auch ohne eigene Breakpoints

Java-Entwickler, welche mit Eclipse arbeiten, erhalten manchmal nach einem Update von Eclipse oder der Java VM Debugfehler, welche sich nicht auf die eigenen Projektdateien beziehen, sondern auf Breakpoints im Java JDK:

Thread [main] (Suspended (exception FileNotFoundException))
URLClassPath$JarLoader.getJarFile(URL) line: 577
URLClassPath$JarLoader. (URL, URLStreamHandler, HashMap) line: 546
URLClassPath$3.run() line: 324
AccessController.doPrivileged(PrivilegedExceptionAction ) line: not
available [native method]
URLClassPath.getLoader(URL) line: 313
URLClassPath.getLoader(int) line: 290
URLClassPath.getResource(String, boolean) line: 160
URLClassPath.getResource(String) line: 213

17-02-_2016_15-35-00

Auch langes googlen hat mir diesmal nicht geholfen. Meistens gab es Empfehlungen, in den Preferences –> Debug  “Suspend execution on uncaught exceptions” zu deaktivieren.

17-02-_2016_15-32-29Leider hatte das bei mir nicht geholfen. Was allerdings half, war bei Breakpoints die betroffene Klasse zu deaktivieren bzw. das Häkchen von “Caught locations” zu deaktivieren.

17-02-_2016_11-20-16Ich hoffe, auch Euch hilft dieser Tipp.