Вставьте значения в MySQL Java

0

Он дает эту ошибку:

"java.sql.SQLException: Индекс параметров вне диапазона (1> количество параметров, которое равно 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: Индекс параметров вне диапазона (0 <1)."

----UPDATE -----

Я вставил этот код:

String sql = "INSERT INTO student_table (id,name,satus,age) VALUES  (?,?,?,?)";

Он производит то же самое:

РЕЗУЛЬТАТ

Структура таблицы:

Изображение 174551

  • 0
    Пожалуйста, ознакомьтесь с соглашениями об именах Java: oracle.com/technetwork/java/codeconventions-135099.html
  • 1
    Версия с (?,?,?,?) Верна, но первый параметр находится в позиции 1, а не 0.
Показать ещё 4 комментария
Теги:
sql-insert

2 ответа

3
Лучший ответ

Ваше выражение SQL

INSERT INTO student_table (id,name,satus,age) VALUES  (id,name,status,age)

на самом деле не имеет никаких параметров. Попробуйте:

INSERT INTO student_table (id,name,satus,age) VALUES  (?,?,?,?)
  • 0
    Я пробовал это, но не будет работать, см. Результат выше на обновлении ....
  • 0
    @KlaydPro Пожалуйста, прочитайте JavaDocs PreparedStatement . В PreparedStatement индексация параметров начинается с 1, а не с 0.
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);

      }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню