热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

出现java.sql.SQLException:Afterendofresultset的原因

最近一直在做一个公司布置的小系统,很多收获,也很多想法,一直没能将收获的内容放在这里分享。我个人感觉,编码一定要很细心,一点点小问题可能都会导致你摸不着头脑,找不

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


 


推荐阅读
  • Java连接MySQL数据库的方法及测试示例
    本文详细介绍了如何安装MySQL数据库,并通过Java编程语言实现与MySQL数据库的连接,包括环境搭建、数据库创建以及简单的查询操作。 ... [详细]
  • 本文详细介绍了如何使用SQL*Plus连接Oracle数据库以及使用MySQL客户端连接MySQL数据库的方法,包括基本命令和具体操作步骤。 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • 本文介绍了MySQL窗口函数的基本概念、应用场景及常见函数的使用方法。窗口函数在处理复杂查询时非常有用,例如计算每个用户的订单排名、环比增长率、以及动态聚合等。 ... [详细]
  • 本文介绍了如何在 Oracle 数据库中查询重复数据,并提供了多种方法来筛选和删除重复记录,包括基于单个字段和多个字段的重复数据处理。 ... [详细]
  • 美团安全响应中心推出全新配送业务测试活动,带来双重福利,邀您共同参与! ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 解决ADODB连接Access时出现80004005错误的方法
    本文详细介绍了如何解决在使用ADODB连接Access数据库时遇到的80004005错误,包括错误原因分析和具体的解决步骤。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 最适合初学者的编程语言
    本文探讨了适合编程新手的最佳语言选择,包括Python、JavaScript等易于上手且功能强大的语言,以及如何通过有效的学习方法提高编程技能。 ... [详细]
  • 本文详细解析了MySQL中常见的几种错误,并提供了具体的解决方法,帮助开发者快速定位和解决问题。 ... [详细]
  • 七大策略降低云上MySQL成本
    在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • 在中标麒麟操作系统上部署达梦数据库及导入SQL文件
    本文档详细介绍了如何在中标麒麟操作系统上安装达梦数据库,并提供了导入SQL文件的具体步骤。首先,检查系统的发行版和内核版本,接着创建必要的用户和用户组,规划数据库安装路径,挂载安装介质,调整系统限制以确保数据库的正常运行,最后通过图形界面完成数据库的安装。 ... [详细]
author-avatar
朝朝宝宝
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有