Я написал следующий метод UPDATE для моей базы данных MySQL.
public int update(User u) {
int status = 0;
Connection connection = null;
PreparedStatement stm = null;
try {
connection = ConnectionConfiguration.getConnection();
stm = connection.prepareStatement("UPDATE users SET f_name=?
l_name=? WHERE id=?");
stm.setString(1, u.getName());
stm.setString(2, u.getLname());
stm.setInt(3, u.getId());
status = stm.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
} finally {
if(stm != null) {
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} return status;
}
Затем я обновляю данные в классе JSP, как показано ниже:
<% int id =Integer.parseInt(request.getParameter("Userid"));
UserM um = new UserM();
User u = new User();
u = um.select(id);
%>
<form method="GET" action="EditServlet">
<input type="hidden" name="id" value="<%=u.getId()%>">
Name:<input type="text" name="fname" value="<%=u.getName()%>"><br>
Last name:<input type="text" name="lname" value="<%=u.getLname()%>"><br>
<input type="submit" value="Edit">
</form>
В EditServlet я написал следующий код.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rid=request.getParameter("id");
int id=Integer.parseInt(rid);
String fname =request.getParameter("fname");
String lname=request.getParameter("lname");
User u =new User();
u.setName(fname);
u.setLname(lname);
u.setId(id);
UserM um = new UserM();
int up_status = um.update(u);
if(up_status > 0) {
request.getRequestDispatcher("/GetUserInfo").forward(request, response);
} else {
request.setAttribute("errorMessage", "Could not change info");
request.getRequestDispatcher("/GetUserInfo").forward(request, response);
}
}
После запуска кода и обновления данных каждый раз отображается сообщение об ошибке. Что-то не так с реализацией моего кода?