日期:2014-05-18  浏览次数:20652 次

java新手,请高手帮忙,关于ResultSet的取值问题。

public Map doFeedbackSql(String sql,String[] objid)throws DAOException{
ResultSet rs=null;
Map map=null;
ps = this.getWrappedConnection().prepareStatement(sql);
    rs = ps.executeQuery();
while(rs.next()){
System.out.println(rs.getString(objid[0])+"__"+rs.getString(objid[0]));
map.put(objid[0], rs.getString(objid[0]));
map.put(objid[1], rs.getString(objid[1]));
}

return map;
}


这是方法,下面是调用:

String sql="Select * from tb_testfeedback where id='1'";
String[] objid={"id","name"};
Map map=dao.doFeedbackSql(sql, objid);

在运行的时候,System.out.println的时候还是有东西的,
但是程序报错。

java.lang.NullPointerException
at com.regaltec.rsas.metadata.feedback.dao.FeedbackMetadataDAO.doFeedbackSql(FeedbackMetadataDAO.java:280)
at com.regaltec.rsas.metadata.feedback.dao.FeedbackMetadataDAO.main(FeedbackMetadataDAO.java:316)


这是怎么回事呢??我应该怎么改呢?求高手帮帮我。

------解决方案--------------------


引用:
Quote: 引用:

java.lang.NullPointerException 空指针异常,你看你的FeedbackMetadataDAO.java:280这行取到值没有,用断言自己调试一下


将resultset的值赋给map,这样map.put(objid[0], rs.getString(objid[0]));可以吗??
               

Map集合是以键值对形式存值的,只要是按照Map的格式存值就OK
------解决方案--------------------
明显的是你map为null,前面声明map时Map map = new HashMap();
------解决方案--------------------
引用:
明显的是你map为null,前面声明map时Map map = new HashMap();

+1,新手可以学下断点调试,容易找问题,这个很重要