博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ResultSet自动关闭问题
阅读量:4649 次
发布时间:2019-06-09

本文共 1018 字,大约阅读时间需要 3 分钟。

 

rs=st.executeQuery("select id from member");while(rs.next())            {    sql="insert into message values('";                    sql+=rs.getString(1)+"','";                    sql+=mg.getType()+"','";                    sql+=mg.getTheme()+"','";                    sql+=mg.getContent()+"','";                    sql+=mg.getTime()+"')";                    st.executeUpdate(sql);                }

上面代码,rs查询到多条记录,但当rs第二次next()时报错,说rs已关闭,但我并没关闭rs。

自己想想觉得和st有关,是不是生成该rs的st重新执行其他语句时rs就自动关闭了,于是修改程序,先取出rs的所有内容存到List,再用st去调list里面的数据。

 rs=st.executeQuery("select id from member");ArrayList
as=new ArrayList
(); while(rs.next()){ as.add(rs.getString(1).trim()); } for(int i=0;i

 

果然运行成功。

上网搜资料发现别人的说法:

其实不必关闭 ResultSet;

因为当产生它的 Statement 关闭、重新执行或用于从多结果序列中获取下一个结果时,该 ResultSet 将被 Statement 自动关闭。 
不过我们在写程序的时候应该做到用完就关闭的习惯。

自己的猜想还是对的。自己基础不深,好多困难自己要多总结,不要一碰问题就去找资料。不好解决的问题,就用自己能想到的最笨的方法先把他弄通了,再去研究简便的方法,理解更深的内容!

转载于:https://www.cnblogs.com/maikuraki/archive/2012/12/01/2797368.html

你可能感兴趣的文章
分页查询的SQL语句
查看>>
Sublime Text 3 注册码
查看>>
jsp内置对象浅谈
查看>>
CentOS搭建SVN服务器
查看>>
WMS与MES集成
查看>>
设置SQLServer数据库内存
查看>>
Java随机3-斐波拉切函数
查看>>
Linux下undefined reference to ‘pthread_create’问题解决 zz
查看>>
P1638 逛画展(直尺法)
查看>>
常用正则表达式
查看>>
github.com/oschwald/maxminddb-golang 安装报错
查看>>
算法复杂度的快慢
查看>>
Java EE中的重新验证(java.util.regex.Pattern)
查看>>
Java从入门到精通——数据库篇Mongo DB 导出,导入,备份
查看>>
Windows 平台下 Go 语言的安装和环境变量设置
查看>>
最近在练习爬虫,分享一些简单入门的知识
查看>>
实验二:编写输出"Hello World!"
查看>>
HDU 1251 统计难题
查看>>
vim深入研究
查看>>
数组中冒泡排序、直接选择排序、反序排序原理与区别
查看>>