Это дает эту ошибку:
"java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0). "
Это код:
public void insertData(int id,String name, String status, String age){
String sql = "INSERT INTO student_table (id,name,satus,age) VALUES (id,name,status,age)";
try (Connection conn1 = this.connects();PreparedStatement Prepst= conn1.prepareStatement(sql)){
Prepst.setInt(1, id);
Prepst.setString(2, name);
Prepst.setString(3, status);
Prepst.setString(4, age);
Prepst.executeUpdate();
}catch(Exception e){
System.err.println(e);
}
Если я изменю индекс параметра на другое значение, например:
Prepst.setInt(0, id);
то выдает эту ошибку:
" java.sql.SQLException: Parameter index out of range (0 < 1 ). "
----ОБНОВИТЬ -----
Я вставил этот код:
String sql = "INSERT INTO student_table (id,name,satus,age) VALUES (?,?,?,?)";
Выдает то же самое:
Структура таблицы:

Версия с (?,?,?,?) верна, но первый параметр находится в позиции 1, а не 0.
хорошо, извините за то, что я пробовал разные способы. После исправления он дает это -> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Неизвестный столбец 'satus' в 'списке полей'
не могли бы вы прислать мне структуру / схему таблицы?
@KlaydPro Может быть, status, а не satus? В любом случае, на ваш вопрос есть ответ. Пожалуйста, не расширяйте его комментариями «помогите мне отладить мой код, пока я не получу правильный результат».
хорошо, спасибо вам всем !!




Ваше выражение SQL
INSERT INTO student_table (id,name,satus,age) VALUES (id,name,status,age)
на самом деле не имеет никаких параметров. Попробуйте:
INSERT INTO student_table (id,name,satus,age) VALUES (?,?,?,?)
@KlaydPro Пожалуйста, прочтите JavaDocs от Подготовленное заявление. В PreparedStatement индексация параметров начинается с 1, а не с 0.
Попробуй это...
public void insertData(int id,String name, String status, String age){
String sql = "INSERT INTO student_table (id,name,satus,age) VALUES (?,?,?,?)";
try (Connection conn1 = this.connection;PreparedStatement Prepst= conn1.prepareStatement(sql)){
Prepst.setInt(1, id);
Prepst.setString(2, name);
Prepst.setString(3, status);
Prepst.setString(4, age);
Prepst.executeUpdate();
}catch(Exception e){
System.err.println(e);
}
}
Пожалуйста, ознакомьтесь с соглашениями об именах Java: oracle.com/technetwork/java/codeconventions-135099.html