大家有没有用过jdbc2.0中的RowSet

浮周 02-11-12

有没有人用过这个类,我照着一本书上的例子写了一个仿RowSet的程序,可以放上来吗,怎么放?

banq
2002-11-13 13:07

可以放上来,使用上面的 File功能

CloudScape
2002-11-13 13:25

SUN不是提供了一个CacheRowSet么?

浮周
2002-11-13 13:50

我研究过sun的这个类,可是我觉得这个类封装的不知是不是太好了,那个设置url的我现在还有点糊涂,我仿照的这个类其实和前面有篇文章讲返回list还是iterator的有点相关,我也看过这里提供的代码,我觉得可以把我写的拿出来给大家比较一下
另外,请用过rowset的同志们说一下它的用法吧

我上网有点不太方便,估计要过两天才能放上来:((

iceant
2002-11-13 18:01

实际上用 RowSet 来解决 Banq 提出的问题是很好的,因为它实际上并没有保持数据库的 Connection. SUN 的 RI 是怎么实现的,我并不知道,
在有 JDBC2.0以前, 我自己写了一个 通用的Model.

Result[
RowData1[Field1,Field2...],
RowData2[Field1,Field2...]
...
]

这种 Model 不适合大数据量的应用。 CachedRowSet 是保证你在断开 Connection 后还能使用数据,很显然,数据在内存里。我们可以假设一下,如果它使用我这种方式,读取所有的ResultSet,肯定很耗内存。
于是我猜想:
如果它不把数据放入内存,那它就只有在每次到达请求边界时,再去数据库取数据,当然取的策略可以有很多。
假设它是这样取的,每次从数据库取一定量的数据(10条),放入内存。
当你用 RowSet.next() 做 iterator,来到最后一条数据(第10条)时,它就会向数据库发出请求,用新的数据块(8或9条)来替换掉现在的数据。同理,到达相应的边界,也要不断地重复更新数据.

我觉得使用这样的策略可能是一种好的方法.

2Go 1 2 下一页