String sql="select count(*) from shoumail";
 
 re=sta.executeQuery(sql);
 int ii=Integer.parseInt(re.toString());
 System.out.print(ii);

这是操纵数据库时的一段代码  目的是输出 表的行的数目   结果报了个空指针错误    
麻烦大家帮我看下错在哪里了 

解决方案 »

  1.   

    先确定一下数据库的驱动搞好了没有,能不能正常的连接数据库。或者试试你的SQL语句在直接操作数据库能不能行,用UI试一下。给的代码太少了,看不出来毛病!
      

  2.   

    数据库连接正常  只是这一句有错误:int ii=Integer.parseInt(re.toString()); 
    去掉这句后 其他的功能还能实现
      

  3.   

    int ii=Integer.parseInt(re.toString()); 
    这句话明显re为null才会爆空指针建议你System.out.println(re)看看是不是null
      

  4.   

    返回的是集合第一行的前一行
    在给int ii赋值前加:re.next();
      

  5.   

    LZ可以这样试试:int count = 0;
    re = sta.executeQuery(sql); 
    while(re.next()){ //遍历搜索结果的每一行,游标自动后移直到没有记录,跳出循环
        count++;
    }
    System.out.println(count);
      

  6.   

    re.next();
    int ii=Integer.parseInt(re.toString()); 
    依旧报空指针错误
    我的目的就是想把 数据库表中的行的数目赋给int ii
    大家还有没有其他的什么方法可以得到表的行数
      

  7.   

    executeQuery
    ResultSet executeQuery(String sql)
                           throws SQLException执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。 参数:
    sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句 
    返回:
    包含给定查询所生成数据的 ResultSet 对象;永远不能为 null 
    抛出: 
    SQLException - 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容LZ,这个返回的是ResultSet,也就是说,re是ResultSet对象,你可以看看JDK,关于ResultSet貌似没有toString()方法 啊~那你那个类型转换又是在转换什么呢?
      

  8.   

    这个简单啊!先说一下原理,首先在rs获取后,将rs的指针知道最后一个,然后通过ResultSet的getRow方法即可获得记录数,代码如下:ResultSet rs = st.executeQuery();
    rs.last(); // 将游标指针移到最后
    int long = rs.getRow(); // rs.getRow()获取ResultSet长度
    rs.beforeFirst(); // 将游标重新移到起点处
      

  9.   

    你的rs是一个数据集,不能按你写的那种方法来得到值,你的int ii=Integer.parseInt(re.toString());这句有误,如果是要得到值 ,应该是在re.next()后,来一行一行获取值,你的查询语句查询的记录只有一条,因此要吧这要得到
    if(re.next()) {
       String str = (String)re.getInt(1);
    }