java - 在数据库中更新相同的值

标签 java mysql jsp

我正在编写代码来重置用户密码。但是,当我登录并尝试更改密码时,数据库中存储的每条记录中都会更新新密码,即输入的新密码将更新为所有记录的新密码。我尝试编辑更新查询,但遇到语法错误,如何修复?

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

</body>
</html>
<%@page import="java.sql.*"%>
<%@page import="java.io.*"%>
<%
    String OldPassword = request.getParameter("OldPassword");
    String Newpass = request.getParameter("newpassword");
    String conpass = request.getParameter("conpassword");


    Connection con = null;
    Statement st = null;
    String pass = "";
    int id = 0;
    try {
        Class.forName("com.mysql.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/form";
        con = DriverManager.getConnection(url, "root", "");
        st = con.createStatement();
        ResultSet rs = st.executeQuery("select * from login where password= '"+ OldPassword + "'");
        if (rs.next()) {
            pass = rs.getString("password");
        }
        if(Newpass.equals(conpass))
        {
            if (pass.equals(OldPassword)) {
                st = con.createStatement();
                int i = st.executeUpdate("update login set password='"+ Newpass + "'");
                out.println("Password changed successfully");
                st.close();
                con.close();
            } else {
                out.println("Old Password doesn't match");
            }
/*}else{
out.println("new password and confirm new password is not matching");
}*/
        }
    } catch (Exception e) {
        out.println(e);
    }
%>

最佳答案

您还需要在查询中添加一个 where 子句,将密码更新限制为仅限该用户。

您可以使用用户的 ID 来更新密码。

您可以找到用户 ID

if (rs.next()) {
    pass = rs.getString("password");
    id = rs.getString("id");
}

那么您更新的查询将是:

st.executeUpdate("update login set password='" + Newpass + "' where id='" + id + "'");

关于java - 在数据库中更新相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49478388/

相关文章:

java - 处理来自 @Service 类的 JSP 页面异常

java - 如何从 JavaScript 向 servlet 发送请求?

java - MyBatis 设置参数出错

java - java中检查连续13位数字

mysql - 获取两个日期时间段之间的数据库搜索结果

javascript - 从图表中的数据库中选择不更新值 php

java - Java 垃圾回收会影响方法吗?

java - Lightbend Lagom - 如何重构 Java EE 整体架构

PHP:函数迭代另一个函数的结果并输出

java - 从 request.getParameter() 获取输入类型 ="image"值