当前位置: 代码迷 >> J2EE >> java.sql.ResultSet.next()有关问题
  详细解决方案

java.sql.ResultSet.next()有关问题

热度:432   发布时间:2016-04-22 02:51:16.0
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出问题了?
  相关解决方案