在一个DAO中,

while(resultset.next())
{   System.out.println(resultset.getString("USERNAME")); //可以正常输出,正确
     VO_USER voResult=VO_USER.getInstance(resultset);               
}

到VO_USER这个VO中的VO_USER.getInstance方法中,
如果输出System.out.println(resultset.getRow())=1
System.out.println(resultset)不是空的但是再输出System.out.println(resultset.getString("USERNAME"))就会出错; 
非常郁闷,好像也给了空指针的异常,请帮忙分析一下,谢谢!
                    

解决方案 »

  1.   

    在执行System.out.println(resultset.getString("USERNAME"))之前
    你先写下resultset.next()
    然后就应该可以得到你想要的结果了
      

  2.   

    回四楼的,我在while里面已经写了resultset.next()
    就是说指针已经指向next了
      

  3.   

    错误描述java.sql.sqlException:odbc驱动程序管理器。无效的描述器索引
    at sun.jdbc.jdbcodbc.createSQLException(jdbcodbc.java:6957)
    at sun.jdbc.jdbcodbc.standardError(jdbcodbc.java:7114)
    at sun.jdbc.jdbcodbc.SQLColAttributes(jdbcodbc.java:2613)
    at sun.jdbc.jdbcodbc.getColAttribute(jdbcodbcResultset.java:5444)
    at sun.jdbc.jdbcodbc.getColumnType(jdbcodbcResultset.java:6055)
    at sun.jdbc.jdbcodbcResultset.getColumnObject(jdbcodbcResultset.java:1644)
    ....
    敲了一些最前面的,大家帮看看
      

  4.   

    回楼上的,当然,否则System.out.println(resultset.getString("USERNAME")); 怎么能够正常输出
      

  5.   

    谢谢楼上的几位但是在DAO_USER中,数据库访问一切正常,然后到了VO_USER(大概继承了implemenable)中,就不正常了。
      

  6.   

    楼主,你不贴异常,我们怎么帮你看啊。信息要尽量多些才好分析嘛
    而且异常信息,最关键的是cause by往往在后面,而且sqlException本身是个集合
      

  7.   

    不好意思,这两天出差作别的事情了,
    重新描述一下
    在一个DAO_USER中,
    public List queryAll(){

    while(resultset.next())
    { System.out.println(resultset.getString("USERNAME")); //可以正常输出,正确
      VO_USER voResult=VO_USER.getInstance(resultset);   
    }。
    }
    DAO中的测试main()
    {
      DAO_USER dao=new DAO_USER();
      dao.queryAll();
    }
    VO中,
    public static VO_USER getInstance(ResultSet resultset)
    {
      VO_USER vo=new VO_USER();
      System.out.println(result.getString("USER_NAME"));
      if(result.getString("USER_NAME")!=null)
      {
          vo.setUSERNAME(resultset.getString("USER_NAME"));
      }
     ......
    }通过DAO中的main测试异常如下:
    java.sql.SQLException:NO data found
    at sun.jdbc.jdbcodbc.standardError(jdbcodbc.java:7318)
    at sun.jdbc.jdbcodbc.SQLGetDataString(jdbcodbc.java:3907)
    at sun.jdbc.jdbcodbcResulstset.getDataString(jdbcodbcResultSet.java:5698)
    at sun.jdbc.jdbcodbcResulstset.getString(jdbcodbcResultSet.java:354)
    at sun.jdbc.jdbcodbcResulstset.getString(jdbcodbcResultSet.java:411)
    at com.ict.model.vo.VO_USER.getInstance(VO_USER.java:96)
    at com.ict.model.dao.DAO_USER.queryAll(DAO_USER.java:160)
    at com.ict.model.dao.DAO_USER.main(DAO_USER.java:199)好像resultSet传到了vo的getInstance中就没有数据了,不知道为什么?》??
      

  8.   

    谢谢楼上的,现在不是set的问题,是不知道为什么resultset一传到getInstance()这个方法中,System.out.println(result.getString("USER_NAME"));
    就错误了,好像没数据了。
      

  9.   

    我也不太明白楼主这样写程序的意思,既然外面的while循环里处理了resultset了,为什么循环里面还要对整个resultset处理呢,你干脆把resultset都交给getInstance()处理算了;while循环里一直resultset.next(),到最后肯定是指向null,哪还有数据给你用?