首页 新闻 会员 周边

java while(rs.next()){}只执行一次?sql语句查过数据为601条,输出Resultset为601条。详见内容

0
悬赏园豆:10 [已解决问题] 解决于 2016-02-29 14:01

输出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都试过了,百度也没找到啥解决办法

洛水3000的主页 洛水3000 | 初学一级 | 园豆:14
提问于:2016-02-29 10:30
< >
分享
最佳答案
0

我定义了一个公用的resultset,问题就在这。

洛水3000 | 初学一级 |园豆:14 | 2016-02-29 14:00
其他回答(1)
0

断点打在12 while(rs.next()){  看这时rs的位置

PS:java代码真难看(双关)

收获园豆:10
吴瑞祥 | 园豆:29449 (高人七级) | 2016-02-29 10:47

不知道看那项来判断,不知道该百度什么,求指教。

第一次:

执行过一次后:

支持(0) 反对(0) 洛水3000 | 园豆:14 (初学一级) | 2016-02-29 11:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册