- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 |
最近一直在做一个公司布置的小系统,很多收获 ,也很多想法,一直没能将收获的内容放在这里分享。我个人感觉,编码一定要很细心,一点点小问题可能都会导致你摸不着头脑,找不到头绪,然后大量地去网上找资料,看什么错误,其实不然。我们更需要去看系统为我们所报的错误,细心分析,其实就是一个很简单的问题:自己审查代码不够细心,就像这两天困扰我的一个问题,弄得烦,一直感觉自己编码没错 ,但就是出现不想要的结果,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()方法是我已经封装好的
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |