sql jdbc getgeneratedkeys gibt die Spalte "id" nicht gefunden wird, Spalte Typ unbekannt
Möchte ich zum abrufen der zuletzt aktualisierte Wert in der Tabelle mit einer insert-Abfrage.
diese sind die Datentypen in meine sql-Tabelle.
Datentyp:
int(11) //primary key auto increment, not being assigned by sqlQuery
varchar(30)
timestamp //has a default value. but i am explicit assigning it using CURRENT_TIMESTAMP
varchar(300)
varchar(300)
varchar(300)
int(11)
varchar(300)
java-code
statement.executeUpdate(sqlQuery, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = statement.getGeneratedKeys();
System.out.println("here: " + rs.getMetaData().getColumnCount());
System.out.println("here1: " + rs.getMetaData().getColumnName(1));
//none of the following 3 works
System.out.println("id: " + rs.getInt(1));
System.out.println("id: " + rs.getInt("GENERATED_KEY"));
System.out.println("id: " + rs.getInt("id"));
for a bit of background see [this][1]
`rs.getMetaData().getColumnTypeName(1)` tells me column type `UNKNOWN`
stack-trace
SEVERE: null
java.sql.SQLException
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:815)
at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5528)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5448)
[1]: http://stackoverflow.com/questions/2853066/sql-java-get-value-assigned-to-auto-increment-primary-key
- ist die Frage unklar?
- Welche version von MySQL und MySQL connector benutzt du?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie rufen Sie
rs.next()
:if
block. Siehe auch diese Antwort.Vielleicht liegt es daran, dass die sqlQuery nicht der Schaffung neuer Rekord!
In diesem Fall wird es wieder ein leeres ResultSet
Blick auf die Spezifikation der getGeneratedKeys()