Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Update语句在JSP中不起作用_Java_Database_Jsp_Jakarta Ee - Fatal编程技术网

Java Update语句在JSP中不起作用

Java Update语句在JSP中不起作用,java,database,jsp,jakarta-ee,Java,Database,Jsp,Jakarta Ee,我不熟悉JSP页面和servlet,我在servlet中有一个更新语句。这是: PreparedStatement checkDB = (PreparedStatement) con.prepareStatement( "UPDATE users set username=?,password=?,name=?,surname=?,phone=?,address," + "email=? where username=?"); checkDB.se

我不熟悉JSP页面和servlet,我在servlet中有一个更新语句。这是:

PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
        "UPDATE users set username=?,password=?,name=?,surname=?,phone=?,address," +
        "email=? where username=?");
        checkDB.setString(8,request.getParameter("tUserName"));
        checkDB.setString(1,request.getParameter("tUserName"));
        checkDB.setString(2,request.getParameter("tPassword"));
        checkDB.setString(3,request.getParameter("tName"));
        checkDB.setString(4,request.getParameter("tSurName"));
        checkDB.setString(5,request.getParameter("tPhone"));
        checkDB.setString(6,request.getParameter("tAddress"));
        checkDB.setString(7,request.getParameter("tEmail"));
        result= checkDB.executeUpdate();
当我执行它时,有一个错误提示java.sql.SQLException:Parameter index超出范围(8>参数数,即7)。我怎样才能解决这个问题


谢谢

检查您的
准备好的声明

PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
    "UPDATE users set username=?,password=?,name=?,surname=?,phone=?,address," +
    "email=? where username=?");
PreparedStatement
sql中有7个
占位符,您正在设置8个参数。它可能是:

PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
    "UPDATE users set username=?,password=?,name=?,surname=?,phone=?,"+
    "address=?," + //You missed =?, here
    "email=? where username=?");
您可能没有将
=?,
放在
地址之后


注意:JSP供查看。禁止在其中写入业务逻辑。还应避免使用Scriptlet。有一个控制器或Servlet来执行业务逻辑。

检查您的
PreparedStatement

PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
    "UPDATE users set username=?,password=?,name=?,surname=?,phone=?,address," +
    "email=? where username=?");
PreparedStatement
sql中有7个
占位符,您正在设置8个参数。它可能是:

PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
    "UPDATE users set username=?,password=?,name=?,surname=?,phone=?,"+
    "address=?," + //You missed =?, here
    "email=? where username=?");
您可能没有将
=?,
放在
地址之后


注意:JSP供查看。禁止在其中写入业务逻辑。还应避免使用Scriptlet。有一个控制器或Servlet来执行业务逻辑。

您缺少
地址=?
您缺少一个?“地址”列更新后,您缺少
地址=?
您缺少一个?“地址”列更新之后