数据库关闭之后可以使用resulset访问,我以前一直这么做,我都是使用PrepareStatement

哦,是吗?即使这样,有没有更多的例子来证明这样的做法没有安全性的隐患,以及是否是jdbc支持的规范的做法,谢谢。

根据我的经验是没有问题,理论上暂时没有未去研究。

其实可以做个测试,看看两种不同的方法到底差多少,在不同的环境下,例如 循环显示的次数不同等。

你不是在看EJB的设计模式吗?这个iterator也在里面算一个的,主要就是输出数据

我觉得这个iterator模式就是java模式,EJB中可以使用,但不是ejb特有的。

当然 EJB用iterator来产生数据,原理和动机和我这篇文章是一样的。

panq你好,我觉的xxff写的代码不符合你说的啊,因为它的类里有新的vector 与treemap实例,这样是不是在内存中就有新的内存区复制了recordset的值呢,这样是不是也算返回collection呢?

你说的对 他的代码要好好整一下

panq兄你能不能写个例子啊,我虽大体明白你的意思但。。:)

另外,我在下载的jdon版的jive中看到有你写的jdom包,能不能给介绍一下这个包啊。先谢了

jdom不是我写的 jdom.org去看看

那statement呢,关闭了statement还能使用rs访问数据库吗?

没看懂,怎么看起来如果用户调用Iterator.next()的时候是死循环呢?刚返回Iterator的时候next显然是null,所以用户调用的时候next()调用了!hasNext,而hasNext又调用了!next()。这是什么意思?而且,为什么要有一个next的成员变量,返回一个String为什么要先放在next成员中呢?
另外,你是不是觉得ArrayList的Add方法是重新复制一个对象而不是只添加一个指针到列表中?恐怕JRE不会采用前面的方法吧,所以ArrayList存储一些指针变量不见得有很大的空间区别。

照我个人的理解
用Iterator这种方式
相当于包装了一下ResultSet
那么
是否我无法利用这个Iterator接口来直接获取纪录的总数?
只能遍历一遍么?那效率太低了啊