Salve a tutti, sto cercando di introdurre le prepared statement nella mia applicazione esercizio che sto preparando per scuola.
Ecco il codice:
codice:
    public int create(User u) {
        Connection c = DBDataSource.getJDBCConnection();
        try {
            String sql = "INSERT into users (id ,nick, pass) VALUES (seq_users.nextval, '?','?')";
            OraclePreparedStatement st = (OraclePreparedStatement) c.prepareStatement(sql);
            st.setString(1, u.getNick());
            st.setString(2, u.getPass());
            st.executeUpdate();
            c.commit();
            c.close();
            return u.getId();
        } catch (SQLException ex) {
            Logger.getLogger(UsersDAO.class.getName()).log(Level.SEVERE, null, ex);
            return -1;
        }

    }
Ed e il log degli errori:

codice:
19-nov-2009 14:16:57 DAO.UsersDAO create
GRAVE: null
java.sql.SQLException: Indice di colonna non valido
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
        at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5360)
        at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:5352)
        at DAO.UsersDAO.create(UsersDAO.java:27)
        at userdao.main(userdao.java:19)
Qualcuno mi sa dire dove sbaglio? Io davvero non riesco a capire.
Grazie del vostro prezioso aiuto