Ho fatto questa classe:
Per con la successione di chiamate makeUpdateQuery(...), getLastKey() non riesco a ottenere la chiave generata ma un'eccezione?codice:public class QueryMaker{ private Connection dbConnection; private Statement last_stmt; public ResultSet makeQuery(String query){ try{ if (dbConnection==null){ Class.forName("com.mysql.jdbc.Driver").newInstance(); dbConnection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/euro_express?user=root&password=root"); } Statement stmt = dbConnection.createStatement(); return stmt.executeQuery(query); } catch (Exception ex){ System.out.println(">"+ex); //System.exit(-1); return null; } } public boolean makeUpdateQuery(String query){ try{ if (dbConnection==null){ Class.forName("com.mysql.jdbc.Driver").newInstance(); dbConnection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/euro_express?user=root&password=root"); } Statement stmt = dbConnection.createStatement(); stmt.executeUpdate(query,Statement.RETURN_GENERATED_KEYS); last_stmt = stmt; return true; } catch (Exception ex){ System.out.println(">"+ex); return false; //System.exit(-1); } } public int getLastKey(){ try{ ResultSet set = last_stmt.getGeneratedKeys(); set.next(); return set.getInt(0); } catch(Exception ex){ System.out.println(ex); return -1; } } }
(Ovviamente con makeUpdateQuery(...) che va a buon fine).
Questa l'eccezione che ottengo:
java.sql.SQLException: Column Index out of range ( 0 > 1).
![]()


