[英]Update Statement does not work in JSP
I am new to JSP pages and servlets andI have an update statement in a servlet. 我是JSP页面和servlet的新手,并且在servlet中有一条update语句。 Here it is:
这里是:
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();
When i execute it, there is an error saying that java.sql.SQLException: Parameter index out of range (8 > number of parameters, which is 7). 当我执行它时,有一个错误消息说java.sql.SQLException:参数索引超出范围(8>参数数量,即7)。 How can i fix this?
我怎样才能解决这个问题?
Thanks 谢谢
Check your PreparedStatement
: 检查您的
PreparedStatement
:
PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
"UPDATE users set username=?,password=?,name=?,surname=?,phone=?,address," +
"email=? where username=?");
There are 7 ?
有7个
?
placeholders in the PreparedStatement
sql and you are setting 8 parameters.It should probably be : 在
PreparedStatement
sql中的占位符,您正在设置8个参数,它可能应该是:
PreparedStatement checkDB = (PreparedStatement) con.prepareStatement(
"UPDATE users set username=?,password=?,name=?,surname=?,phone=?,"+
"address=?," + //You missed =?, here
"email=? where username=?");
You probably missed to put =?,
after address
. 您可能错过了在
address
之后加上=?,
。
Note: JSPs are for view. 注意: JSP供查看。 Prohibit from writing business logic in it .
禁止在其中编写业务逻辑。 Use of scriptlets should also be avoided .
还应避免使用scriptlet。 Have a Controller or Servlet to do business logic.
有一个Controller或Servlet进行业务逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.