title: Using getGeneratedKeys() Java
body: <p>Can anyone see how I'm missuing this ResultSet? I'm getting the below errors from <code>customerID = rs.getInt(1)</code>:</p>
  
  <pre class="lang-java prettyprint-override"><code>public boolean addCustomer(Customer customer) {
      String customerSQL = "INSERT INTO Customer (first_name, last_name)"
              + "VALUES (?, ?)";
      String emailSQL = "INSERT INTO Email (customer_ID, email_address, primary_email)"
              + "VALUES (?,?,?)";
      int customerID = 0;
  
      try (Connection connection = getConnection();
              PreparedStatement customerPs = connection.prepareStatement(
                      customerSQL, new String[] {"CUSTOMER_ID"});
              //PreparedStatement idPs = connection.prepareStatement(idSQL);
              //PreparedStatement emailPs = connection.prepareStatement(emailSQL)
              )  {
  
          customerPs.setString(1, customer.getFirstName());
          customerPs.setString(2, customer.getLastName());
          customerPs.executeUpdate();
          ResultSet rs = customerPs.getGeneratedKeys();
  
          System.out.println("Result Set: " + rs.toString());
          customerID = rs.getInt(1);
          System.out.print("Customer ID: " + customerID);
  
  
  
      }
      catch(SQLException e)
      {
          System.err.println("Error: " + e);
          e.printStackTrace(System.out);
          return false;
      }
  
      return false;
  }
  </code></pre>
  
  <p>OUTPUT</p>
  
  <pre><code>run:
  Bill Joel
  this@that.com
  those@these.com
  wank@that.com
  
  Result Set: org.apache.derby.impl.jdbc.EmbedResultSet40@61c70928
  Error: java.sql.SQLException: Invalid cursor state - no current row.
  java.sql.SQLException: Invalid cursor state - no current row.
          at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
          at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
          at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
          at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
          at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
          at org.apache.derby.impl.jdbc.ConnectionChild.newSQLException(Unknown Source)
          at org.apache.derby.impl.jdbc.EmbedResultSet.checkOnRow(Unknown Source)
          at org.apache.derby.impl.jdbc.EmbedResultSet.getColumn(Unknown Source)
          at org.apache.derby.impl.jdbc.EmbedResultSet.getInt(Unknown Source)
          at customeremailmanager.CustomerDB.addCustomer(CustomerDB.java:78)
          at customeremailmanager.CustomerEmailManager.main(CustomerEmailManager.java:24)
  Caused by: java.sql.SQLException: Invalid cursor state - no current row.
          at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
          at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
          ... 11 more
  BUILD SUCCESSFUL (total time: 1 second)
  </code></pre>