专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Java Exception

空指针,数组提取数据库数据异常

发布时间:2010-06-05 12:26:54 文章来源:www.iduyao.cn 采编人员:星星草

请大家帮我分析下 下面是空指针异常是怎样回事?
我是用数组提取数据库数据 ,连接如下:
public List List4(String sql){
List listRow = new ArrayList();
List listColumn = null;
try{
rs=stat.executeQuery(sql);
while(rs.next()){
listColumn = new ArrayList();
listColumn.add(rs.getString(1).trim());
listColumn.add(rs.getString(2).trim());
listColumn.add(rs.getString(3).trim());
listRow.add(listColumn);
}
return listRow;
}catch(SQLException e){
e.printStackTrace();
}
return listRow;
}
SQL语句如下:
String sqlwai= "select prodstep, sum(outstep) as alloutstep,sum(outtotal) as allouttotal from calpcs where PRODNO+prodname= ' "+number+ " ' group by prodstep order by prodstep ";
ArrayList text1=(ArrayList)conn.List4(sqlwai);
Iterator wai=text1.iterator();
for(int i1 =0; i1 <text1.size();i1++){
wai.hasNext();
List list1=(List) wai.next();
prodstep=(String)list1.get(0);
//fac=(String)list1.get(1);
outstep=(String)list1.get(1);
outtotal=(String)list1.get(2);
}

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
Connectionbean.Connectionbean.List4(Connectionbean.java:145)
myservlet.myservlet.fd(myservlet.java:89)
myservlet.myservlet.doPost(myservlet.java:56)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.12 logs.


到底是怎样怎么回事呢? 请高手们指点下.在线等 谢谢 ~!!


------解决方法--------------------------------------------------------
while(rs.next()) //???不太明白这句话是否应该while(rs.hasNext())?
------解决方法--------------------------------------------------------
可能rs.getString(num)的时候,数据库里为空值,这个时候用trim()则会保NULL异常
------解决方法--------------------------------------------------------
改成这个试试
for(int i1 =0; i1 <text1.size();i1++){
if(wai.hasNext())
{
List list1=(List) wai.next();
prodstep=(String)list1.get(0);
//fac=(String)list1.get(1);
outstep=(String)list1.get(1);
outtotal=(String)list1.get(2);
}
}

------解决方法--------------------------------------------------------
可能是rs.getString(1)或者rs.getString(2)或者rs.getString(3)时,得到的值是空,再调用trim()时,就null异常了。
------解决方法--------------------------------------------------------     

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: