Java jsp页面使用tomcat时发生sql错误,eclipse错误=:索引1超出范围

Java jsp页面使用tomcat时发生sql错误,eclipse错误=:索引1超出范围,java,sql,eclipse,jsp,jdbc,Java,Sql,Eclipse,Jsp,Jdbc,我的jsp页面有问题。我正在使用:- -Tomcat 8.0.20 -Eclipse Java EE luna SR2 -Microsoft SQL server 2005 -使用ManagementStudio express执行数据库工作 这是一个小问题,因为我正在学习在jsp页面上运行查询。我偶然发现了这个问题,想知道是否有人能帮助我 这是我的代码片段 <sql:setDataSource var="snapshot" river="com.microsoft.sqlserver.

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

-Tomcat 8.0.20

-Eclipse Java EE luna SR2

-Microsoft SQL server 2005

-使用ManagementStudio 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>

更新员工设置的最后值='Ali'
这就是错误所在

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

更新员工设置的最后值='Ali'

索引1超出范围。 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) javaservlet.http.HttpServlet.service(HttpServlet.java:725) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

根本原因

com.microsoft.sqlserver.jdbc.SQLServerException:索引1超出范围。 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(未知源) com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.SetTargetParam(未知源) com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(未知源) 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\u jsp.\u jspx\u meth\u sql\u 005fupdate\u 005f0(updatetest\u jsp.java:274) org.apache.jsp.updatetest\u jsp.\u jsp服务(updatetest\u jsp.java:145) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javaservlet.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) javaservlet.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>

更新上次设置的员工=?
其中id='${empId}'
就这些。我希望这能帮助遇到同样问题的人。
谢谢大家!

你能发布后台运行的代码吗?代码在上面,我说“这是代码片段”(红色和蓝色的)。这是密码,没有别的了。这些代码被插入到普通的html代码中,以生成jsp页面。(红色和蓝色的那一个)谢谢你帮我兄弟!是不是因为您在SQL语句没有参数时提供了一个参数值?对不起,我真的不明白。你能再详细解释一下吗?谢谢很显然,我只需要稍微更改一下查询和参数。