读书人

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

发布时间: 2012-01-14 20:02:35 作者: rapoo

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出问题了?

读书人网 >J2EE开发

热点推荐