java.sql.ResultSet.next()问题
当结果集java.sql.ResultSet为空(没有记录),调用java.sql.Result.next()时会抛出
SQLException异常。
为什么?
Java code
141
142 rs = cstmt.executeQuery();
143 while(rs.next()){
144 HashMap<String,Object> column = new HashMap<String,Object>();
145 ResultSetMetaData rsm = rs.getMetaData();
146 for(int column_count = 1;column_count != rsm.getColumnCount()+1;column_count++){
147 column.put(rsm.getColumnName(column_count),rs.getObject(column_count));
148 }
149 result_list.add(column);
150 }
151 }catch(SQLException e){
152 throw e;
这里当rs为空(没有记录)调用next(),上层调用方法就收到异常。但在API中,这样说的
Returns: true if the new current row is valid; false if there are no more rows
Throws: SQLException - if a database access error occurs or this method is called on a closed result s
你们有没有遇到这样的情况?
------解决方案--------------------
当结果集java.sql.ResultSet为空(没有记录),调用java.sql.Result.next()时不会抛异常的
如果你的程序中抛出了异常,你还是好好的看一下异常堆栈信息吧
------解决方案--------------------是不是executeQuery方法写得有问题,导致后面next出问题了?