请高手指点迷津,什么情况下会出现此等怪现像
String sql="SELECT Sum(merit_inventory_chuhuo.quality) AS xquality, merit_inventory_chuhuo.sku FROM merit_inventory_chuhuo GROUP BY merit_inventory_chuhuo.sku";db.query(sql);
while(db.rs_next()){
sku=db.rs_getString("sku");
quality=db.rs_getInt("xquality"); out.print(rows+". "+sku+" "+quality+"<br>");
}上面是部分代码,我的merit_inventory_chuhuo表中有1635条记录,执行上面的sql语句后,打印结果是这样的,分组统计出了183条数据,剩下全部以null的形式打印出来了,
180. 401-362 84
181. 401-363 18
182. 401-366 4
183. 401-367 2
184. null -1
185. null -1
186. null -1
187. null -1
188. null -1
189. null -1
190. null -1
我的类的片断://....
ResultSet rs = null;
public ResultSet query(String strSql){
try{
this.rs = stmt.executeQuery(strSql);
return this.rs;
}catch(SQLException e){
return null;
}catch(NullPointerException e){
return null;
}catch(IOException e){
return null;
}
}
public String rs_getString(int column){
try{
return this.rs.getString(column);
}catch(SQLException e){
return e.toString();
}
}public int rs_getInt(String column){
try{
return this.rs.getInt(column);
}catch(SQLException e){
return -1;
}
}
//....

解决方案 »

  1.   

    这个问题还是我自己琢磨出来了,是因为我创建的statement 的类型 ResultSet.TYPE_SCROLL_INSENSITIVE要想解决这个问题,就要用ResultSet.TYPE_SCROLL_INSENSITIVE 就是结果集游标不可滚动但是有时候需要通过滚动进行分页,那怎么办,又经过了1年,也就是到现在我,我终于找出来一个方法
    那就是把sql再改造一下,
    SELECT Sum(quality) AS xquality, sku FROM merit_inventory_chuhuo GROUP BY sku改为:select * from ( SELECT Sum(quality) AS xquality, sku FROM merit_inventory_chuhuo GROUP BY sku ) order by sku有几个注意点,
    1.“select * from ( ”后面一定要有一个空格
    2.“GROUP BY sku”后面也一定要有一个空格
    3. 一定要再加一个order by ,这里就选用了sku