日期:2014-05-16  浏览次数:20424 次

rs.next()方法感悟

今天使用dwr的时候发现js无法执行回调函数,但是通过页面js测试类却没有问题正常运行,能够显示数据,但是就是结构不是我想要的结果,发现rs.next()语句不执行,上网找了很多大侠的解说,顿时灵光一线但是改过后没有反应,结果还不正确,静下心来分析问题吧。

?

1.首先说ResultSet这个东西是一个接口,各个数据库驱动来实现他,真正我们用到的rs就已经是实例化的东西了,所以rs!=null这个肯定是正确的了,所以来判断是否rs有值就不能通过这个来判断。

2.通过rs.next()这个方法判断才是王道,rs.next()表示结果集里rs游标从0条向下移动到第一条结果看看有没有结果如果有结果就显示true,否则显示false。

? 道理是明白了,但是为什么还会出现问题呢,仔细从自身查找原因原来在我System.out.println("rs.next===="+rs.next())已经在真正if(rs.next())之前叫游标向下移动,已经移动到了第一条,知道真正执行if(rs.next())时候就真的找不到结果了。

?

这个问题,也给我了启示要多注意自己的代码不要怀疑别人的程序。从原理分析问题,不要浮躁的解决问题。

1 楼 boyone 2010-09-03  
确实是, 我们编程序就得从一点一滴做起。
2 楼 xushunwang 2010-09-03  
有时候就会这样子
3 楼 tangluyou 2010-09-03  
一点一滴做起。
4 楼 longhua828 2010-09-03  
这个问题真的比较新手
5 楼 alexandrae2008 2010-11-01  
Log里不要乱用.next()啊。。