Java Update语句在JSP中不起作用
我不熟悉JSP页面和servlet,我在servlet中有一个更新语句。这是: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
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来执行业务逻辑。您缺少地址=?
您缺少一个?“地址”列更新后,您缺少地址=?
您缺少一个?“地址”列更新之后