A few JDBC methods behave differently with the embedded driver from the way they behave with the client driver.
These methods are as follows:
Connection.prepareStatement(String sql, String[] columnNames) Connection.prepareStatement(String sql, int[] columnIndexes) Statement.execute(String sql, String[] columnNames) Statement.execute(String sql, int[] columnIndexes) Statement.executeUpdate(String sql, String[] columnNames) Statement.executeUpdate(String sql, int[] columnIndexes)
The differences in behavior are described in "Autogenerated keys" in the Derby Reference Manual.