jsp 页 sql 使用 tomcat 和 eclipse 错误 =:索引 1 超出范围

jsp pages sql error using tomcat and eclipse error = : The index 1 is out of range

我的 jsp 页面有问题。我正在使用:-

-Tomcat 8.0.20

-Eclipse Java EE luna SR2

-Microsoft SQL 服务器 2005

-使用 management studio express 做我的数据库工作

这是一个小问题,因为我正在学习 运行 在 jsp 页面上进行查询。我偶然发现了这个问题,想知道是否有人可以帮助我。

这是我的代码片段

 <sql:setDataSource var="snapshot" river="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
 url="jdbc:sqlserver://SANGKARAN;database=ILMU;" 
 user="*******" password="******"/>

<c:set var="empId" value="102"/>

<sql:update dataSource="${snapshot}" var="count">
 UPDATE Employees SET last VALUES = 'Ali'
 <sql:param value="${empId}" />
</sql:update>

这是错误

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException:

UPDATE Employees SET last VALUES = 'Ali'

The index 1 is out of range. org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:548) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:454) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

根本原因

com.microsoft.sqlserver.jdbc.SQLServerException: The index 1 is out of range. com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setterGetParam(Unknown Source) com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(Unknown Source) org.apache.taglibs.standard.tag.common.sql.UpdateTagSupport.setParameters(UpdateTagSupport.java:262) org.apache.taglibs.standard.tag.common.sql.UpdateTagSupport.doEndTag(UpdateTagSupport.java:165) org.apache.jsp.updatetest_jsp._jspx_meth_sql_005fupdate_005f0(updatetest_jsp.java:274) org.apache.jsp.updatetest_jsp._jspService(updatetest_jsp.java:145) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我真的需要一些帮助。

没关系,我已经想通了。我的查询和参数语法是错误的。我所要做的就是像这样改变它并且它有效。

<sql:update dataSource="${snapshot}" var="count">
UPDATE Employees SET last = ?
            WHERE id='${empId}'
<sql:param value="${lastname}" />
</sql:update>

就是这样。我希望这可以帮助遇到同样问题的人。 谢谢!