很奇怪的现象!!

cender 2002-09-28 04:14:33
我定义了两个类,暂用bean 和 dao代替

我在dao 中定义了一个全局的Vector resultVec 用来存放从数据库中得来的数据

在bean中调用dao ,返回resultVec,并且把结果显示在页面上,

但是每次我更改完表中的数据后,都要把服务重新启动一遍,页面上的数据才更新,

否则显示的是修改前的数据,

当我把dao 中的resultVec改成局部变量之后就没有这种问题了

有没有人遇到过这种问题,知不知道是什么原因!
...全文
25 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cender 2002-09-28
  • 打赏
  • 举报
回复
谢谢各位大虾
cender 2002-09-28
  • 打赏
  • 举报
回复
你这么一说,我好像想起来,我当时生成的时候是这样:

private Vector resultVec ;

后来改成局部变量了,

现在这样生成可能也应该没有问题了:

private Vector resultVec = null;

wjmmml 2002-09-28
  • 打赏
  • 举报
回复
所谓的初始化就是把你的全局变量=null;
就可以了。
cender 2002-09-28
  • 打赏
  • 举报
回复
不过每次调用dao的时候,都会作resultVec = new Vector();

wjmmml 2002-09-28
  • 打赏
  • 举报
回复
原因是你没有在数据处理完后,对全局的对象Vector resultVec 进行初始化,所以,才会这样,解决办法,你在用完上述对象后,就初始化,就可以了。
cender 2002-09-28
  • 打赏
  • 举报
回复
没调用一次页面,都会重新走一边bean ,dao

缓存的问题,应该是不存在的
kofwr 2002-09-28
  • 打赏
  • 举报
回复
原来的数据都保存在Vector中了,新添加的数据加进DB,我想是resultVec这个实例没有正确的栓新,又或者是你这个页面的缓存在捣乱.仔细瞧........
cender 2002-09-28
  • 打赏
  • 举报
回复
从dao返回到bean 不算是dao这个程序结束吗?
maple92 2002-09-28
  • 打赏
  • 举报
回复
java是自动释放变量的,如果你是全局变量的话,只有程序结束变量才会被释放。
如果是局部的话就好了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧