输出Resultset的总数位601.
sql语句查询结果如下,
注意:我将下面两行都注释了,不过调试时while(rs.next()){}还是就执行一次。
//rs.last();//到ResultSet最后一行
//System.out.println(rs.getRow());//最后一行的RowId为601
1 //查询所有站点一天内自行车借出数目和归还数目、剩余自行车数目、站点名称、站点编号 2 public List<stationInfo> QueryStationInfo(){ 3 List<stationInfo> stationInfolist = new ArrayList<stationInfo>(); 4 5 String sql="select distinct stationId,stationName,stationlon,stationlat from station Order by stationId ASC"; 6 dbh = new DBHelper(sql); 7 try { 8 rs = dbh.ps.executeQuery(sql);// 执行语句,得到结果集 9 //rs.last();//到ResultSet最后一行 调试时注释了 10 //System.out.println(rs.getRow());//最后一行的RowId为601 11 12 while(rs.next()){ 13 System.out.println(rs.getRow()); 14 //if( (rs.getString("stationlon")!=null) 15 // &&(rs.getString("stationlat")!=null) ){ 16 17 int iStationId = Integer.parseInt(rs.getString("stationId")); 18 String StationName = rs.getString("stationName"); 19 float Stationlon = Float.parseFloat(rs.getString("stationlon")); 20 float Stationlat = Float.parseFloat(rs.getString("stationlat")); 21 float lendNum = QueryNumOfLend(iStationId); //获得一天内该站点借出自行车数目 22 float returnNum = QueryNumOfReturn(iStationId); //获得一天内该站点借出自行车数目 23 float leftNum = (float)(INITIAL_VALUE - lendNum + returnNum); //剩余自行车数目 24 /*System.out.println("iStationId:" + iStationId); 25 System.out.println("StationName:" + StationName); 26 System.out.println("Stationlon:" + Stationlon); 27 System.out.println("Stationlat:" + Stationlat); 28 System.out.println("lendNum:" + lendNum); 29 System.out.println("returnNum:" + returnNum); 30 System.out.println("leftNum:" + leftNum);*/ 31 32 stationInfo stationinfo = new stationInfo(); 34 stationinfo.setStationId(iStationId); 35 stationinfo.setStationName(StationName); 36 stationinfo.setStationlat(Stationlat); 37 stationinfo.setStationlon(Stationlon); 38 stationinfo.setInvitialNum(INITIAL_VALUE); 39 stationinfo.setStationReturnNum(returnNum); 40 stationinfo.setStationLendNum(lendNum); 41 stationinfo.setLeftNum(leftNum); 42 stationInfolist.add(stationinfo); 43 //} 44 } 45 for(stationInfo book : stationInfolist){ 46 System.out.println(book.getStationId()); 47 System.out.println(book.getStationlat()); 48 System.out.println(book.getStationLendNum()); 49 50 } 51 //rs.close(); 52 //dbh.close();// 关闭连接 53 } catch (Exception e){ 54 e.printStackTrace(); 55 } 56 return stationInfolist; 57 } 58 59 //++根据用户所选择的站点编号 查询一天内 该站点 自行车借出数目 60 public float QueryNumOfLend(int iStationId){ 61 float iRecordNum = 0; 62 String sql="select * from record where stationGoId ="+iStationId; 63 dbh =new DBHelper(sql); 64 try{ 65 rs = dbh.ps.executeQuery(sql);// 执行语句,得到结果集 66 while(rs.next()){ 67 iRecordNum += 1; 68 } 69 System.out.println(iRecordNum); 70 //rs.close(); 71 //dbh.close();// 关闭连接 72 } catch (Exception e) { 73 e.printStackTrace(); 74 } 75 return iRecordNum; 76 } 77 78 //++根据用户所选择的站点编号 查询一天内 该站点 自行车归还数目 79 public float QueryNumOfReturn(int iStationId){ 80 float iRecordNum = 0; 81 String sql="select * from record where stationBackId ="+iStationId; 82 dbh = new DBHelper(sql); 83 try{ 84 rs = dbh.ps.executeQuery(sql);// 执行语句,得到结果集 85 while(rs.next()){ 86 iRecordNum += 1; 87 } 88 System.out.println(iRecordNum); 89 //rs.close(); 90 //dbh.close();// 关闭连接 91 } catch (Exception e) { 92 e.printStackTrace(); 93 } 94 return iRecordNum; 95 }
我重启MyEclipse都试过了,百度也没找到啥解决办法
我定义了一个公用的resultset,问题就在这。
断点打在12 while(rs.next()){ 看这时rs的位置
PS:java代码真难看(双关)
不知道看那项来判断,不知道该百度什么,求指教。
第一次:
执行过一次后: