请教:两个servlet怎样共享同一个结果集,我是初学者,别骂我!(100分)

  • 主题发起人 主题发起人 dxd0222
  • 开始时间 开始时间
D

dxd0222

Unregistered / Unconfirmed
GUEST, unregistred user!
请教:两个servlet怎样共享同一个结果集,我是初学者,别骂我!
 
为什么要两个servlet共享同一个结果集呢?回答你的问题之前,我想先明白你这么想
的理由。
先告诉你我的观点:同一个resultSet不应该用在两个servlet中。考虑把你的结果封装成
对象列表。
 
如果实在要共享,可以通过request.setAttribute,再转到另一个servlet中用
request.getAttribute读出来。
 
to:曹晓钢
我想,同一个表中的数据,多个人访问时,不应该有多个结果集,这样可以节省内存,
我是这样想的。
 
节约内存也不是这样节约的呀。你可以构造一个对象放在一个池中,大家共享嘛。
要知道数据库连接的费用也是很高的,你一直占用一个RS,实际也就是占用一个连接呢。
而且这样的做法在你的表结构更新的时候,也不利于程序的修改的。
比如修改一个字段的名字,你怎么办?满世界的去找在哪儿用到了这个字段吗?呵呵。
好傻的,是不是?
java提供了优秀的OO,为什么不用呢?
 
把你的数据封装为一个类
比如以下的试例代码:
public class data {
static private data instance;
// 唯一实例(及你需要共享数据的类。
private data() { //构建函数为私有已防止其他对象创建本项实例。
init();
.....
}
private void init() {
...... //你的代码,创建你的数据类。
}
//调用函数,返回唯一实例
static synchronized public data getInstance() {
return instance;
}

 
其实你的想法很好,用得好,比所谓得连接池效率都高。
我现在开发的一个项目就使用了该项技术,对数据库中最新的1000条记录
进行缓存,简单测试可以减少30左右的数据库访问量,速度也很块,问题是
编写维护缓存数据的代码太复杂,吃了不少苦头。
 
接受答案了.
 
后退
顶部