SQL исключение из java netbeans, не могу найти причину - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь обновить базу данных в MySql верстаке из java netbeans, и не могу найти причину root для этого исключения.

java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).

Кажется, цифры соответствует ... но индекс всегда находится вне диапазона Вот мой фрагмент кода. Любая помощь будет оценена!

 pstmt = conn.prepareStatement ("UPDATE studentid.sinfoafter SET username = ?, password = ?, snumber# = ?, fullname = ?, email = ?, phone# = ?, status = ? WHERE username = ?");
            pstmt.setString (1, selected.getUsername ());
            pstmt.setString (2, selected.getPassword ());
            pstmt.setInt (3, selected.getsId ());
            pstmt.setString (4, selected.getFullName ());
            pstmt.setString (5, selected.getEmail ());
            pstmt.setInt (6, selected.getPhone ());
            pstmt.setInt (7, selected.getStatus ());
            pstmt.setString (8, selected.getUsername ());
            pstmt.executeUpdate ();
            conn.close ();```

1 Ответ

0 голосов
/ 30 апреля 2020

Вы должны экранировать значение в WHERE CLAUSE:

pstmt = conn.prepareStatement ("UPDATE studentid.sinfoafter SET username = ?, password = ?, snumber# = ?, fullname = ?, email = ?, phone# = ?, status = ? WHERE username = '?'");

Если нет, SQL считает, что вы хотите извлечь все строки, в которых столбец username имеет то же значение, что и не существующий столбец с именем exampleUsername, поэтому он выдает синтаксическую ошибку.

...