出现java.sql.SQLException: After end of result set的原因

  最近一直在做一个公司布置的小系统,很多收获 ,也很多想法,一直没能将收获的内容放在这里分享。我个人感觉,编码一定要很细心,一点点小问题可能都会导致你摸不着头脑,找不到头绪,然后大量地去网上找资料,看什么错误,其实不然。我们更需要去看系统为我们所报的错误,细心分析,其实就是一个很简单的问题:自己审查代码不够细心,就像这两天困扰我的一个问题,弄得烦,一直感觉自己编码没错 ,但就是出现不想要的结果,java.sql.SQLException: After end of result set。

  这个问题在网上也查过了,是因为你引用了多个结果集的时候,由于前一个结果集已经和数据库关闭,你又引用 ,那当然找到的结果为Null.单说会听得发懵,下面看一下这段程序吧:

 1              //  查找选择的状态对应的id
 2              sql1  =   "  select stateId from state where stateMessage = ' "
 3                       +  stateBean.getStateMessage()  +   " " ;
 4              ResultSet rs1  =  con.executeQuery(sql1);
 5               try  {
 6                   while  (rs1.next()) {
 7                      stateId  =  String.valueOf(rs1.getInt( 1 ));
 8                  }
 9              }  catch  (SQLException e) {
10                  e.printStackTrace();
11              }
12               //  查找选择的管理员对应的id
13              sql2  =   "  select adminId from admin where adminRealName = ' "
14                       +  adminBean.getAdminRealName()  +   " " ;
15              ResultSet rs2  =  con.executeQuery(sql2);
16               try  {
17                   while  (rs2.next()) {
18                        adminId  =  String.valueOf(rs1.getInt( 1 ));
19                  }
20              }  catch  (SQLException e) {
21                  e.printStackTrace();
22              }

不知道大家是否已经注意到第18行的错误,adminId = String.valueOf(rs.getInt(1));本来是需要引用rs2的结果集的,但却引用了上面已经关闭过的rs1的结果集。所以出现java.sql.SQLException: After end of result set这样的错误,就一个很小的细节问题,但如果不细心的话,那将可能弄很久。当然,弄错一次了也是一个好事,也算是积累了经验,印象也加深了。希望大家下次不要出现这样的小问题哦。

注: executeQuery()方法是我已经封装好的

转载于:https://www.cnblogs.com/azai/archive/2010/01/09/1642781.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值