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>
就是这样。我希望这可以帮助遇到同样问题的人。
谢谢!
我的 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>
就是这样。我希望这可以帮助遇到同样问题的人。 谢谢!