首页 新闻 会员 周边

请教关于ResultSet 的问题

0
悬赏园豆:40 [待解决问题]
1 ResultSet res = stm.executeQuery("select * from emp");
2 while(res.next()){
3 System.out.print(res.getString(1));
4 System.out.print("\t" + res.getString(2));
5 }

上述代码可以正常输出emp表中数据前提下将上述代码修改为

ResultSet res = stm.executeQuery("select * from emp");
stm.executeUpdate("insert into emp values('101','ruby','','','','','','')");
while(res.next()){
System.out.print(res.getString(1));
System.out.print("\t" + res.getString(2));
}

完成插入一条数据的操作后不在打印出表内容,这个是什么原因,resultset在代码执行中是怎样的状态请了解的前辈帮忙指点下。

东.城的主页 东.城 | 初学一级 | 园豆:160
提问于:2012-02-21 16:53
< >
分享
所有回答(3)
0

把第一行代码与第二行代码换一下位置试试。

dudu | 园豆:30994 (高人七级) | 2012-02-21 17:30
0

缓冲区数据被清空了,资源没有及时释放

az235 | 园豆:8483 (大侠五级) | 2012-02-22 08:19

能详细帮我解释下缓冲区在执行每条语句前后是如何释放和更新的么?我感觉上述问题应该是因为执行插入语句后res指向的原对象发生变化,但是变化的细节是什么呢?

支持(0) 反对(0) 东.城 | 园豆:160 (初学一级) | 2012-02-22 09:22
0

首先你要确定是否进过while循环,还是抛异常跳过未执行while(即插入操作是否成功)setAutoCommit(true)有没有改过

才能进行之后的验证。

天王盖地虎, | 园豆:169 (初学一级) | 2013-02-27 14:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册