Я получаю java.sql.SQLException:Получение java.sql.SQLException: Не задано значение параметра 1 при обновлении записи в сервлет с использованием MySQL
Не задано значение параметра 1 ошибки
при обновлении адреса электронной почты, который является 11-й колонкой в базе данных.
Это код:
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3308/authenticate", "root", "root");
st = con.createStatement();
String query = "update custt set email =? where accno =?";
PreparedStatement ps = con.prepareStatement(query);
ps.executeUpdate();
System.out.println("updated");
//st.executeUpdate(query);// create a statement
ps.setInt(2, acn);
ps.setString(11, eml);
//eml=rs.getString(11); // set input parameter 1
System.out.println("updated value"+acn);
System.out.println("updated value"+eml);
// acnn = rs.getInt(2);
/// session.setAttribute("Accno", acnn);
//session.setAttribute("C_email", eml);
// System.out.println("updated");
} catch (SQLException ex) {
Logger.getLogger(UpdateDetails.class.getName()).log(Level.SEVERE, null, ex);
}
1) Вы вызываете 'executeUpdate()' * до * установки каких-либо параметров, поэтому почему вы путаете, когда он говорит * «Нет значения, указанного для параметра 1» *? Стекловая строка даже сообщает вам, что ошибка происходит до любого вызова 'setXxx()'. --- 2) Даже если вы переместите его до тех пор, пока вы не установите параметры, обратите внимание, что вы устанавливаете значения маркеров параметра '?', А не столбцы, а маркер электронной почты является маркером * first *, aka parameter 1 , а не параметр 11. – Andreas