我都要发疯了,为什么ResultSet在使用第7次时会突然抛出异常!
下面这段程序:
String data = "-";
while(rs.next()) {
%>
<tr>
<%
for(i=0;i<count;i++)
{
System.err.println(i);
if(i == 5)
{
float temp = rs.getFloat(i+1);
data = Float.toString(db.SellPrice(temp));
}
else
{
data = rs.getString(i+1);
if(data==null)
data = "-";
}
System.err.println(data);
%>
<td><%=data%></td>
<%
}
}
下面出错提示,中间包含err.println的数出结果:
0
1000232
1
手术刀柄
2
3号-200MM
3
24
4
把
5
16.15
6
StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception
java.lang.NullPointerException
java.lang.NullPointerException
at oracle.jdbc.driver.ScrollableResultSet.getCachedDatumValueAt(ScrollableResultSet.java:1307)
at oracle.jdbc.driver.ScrollableResultSet.getOracleObject(ScrollableResultSet.java:398)
at oracle.jdbc.driver.ScrollableResultSet.getString(ScrollableResultSet.java:406)
at org.apache.jsp.main$jsp._jspService(main$jsp.java:167)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:201)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1011)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1106)
at java.lang.Thread.run(Thread.java:484)
可以看出,rs.getString前面6次循环成功执行,到第七次就突然抛出了异常!
和数据库中的数据没有任何关系,因为我把一次取的字段数降为6个时,就在
while(rs.next())处抛出异常!这就是说,这个rs只能用6次!这是什么鬼错误啊!我都要发疯了!