[讨论]一个在Struts下的效率问题
在做项目的过程中经常会遇到“查询一堆数据,然后修改或者删除里面的某些项”的情况。
例如,在页面上输入“学生姓名、班级、年级”等查询条件后,执行以下Action操作:
search(...){
...
List myList = 从数据库中得到相应的数据,并把每个数据放到Student实体中;
request.setAttribute("stuList",myList);
...
}
对应的,在页面 student.jsp 上生成如下形式的信息
学号 姓名 班级 年级 ...
===============================================
1 mike 1011 2002 ... 删除 修改
2 joe 1022 2003 ... 删除 修改
3 hehe 1032 2001 ... 删除 修改
...
================================================
Note:每一条信息后面都有两个“删除”和“修改”的连接,以便可以对数据进行相应操作
不管是对数据进行哪种操作,都要求重新回到 student.jsp 页面,并且数据是更新后的数据。
为了实现上面的功能,有两种方案可以实施:
1。把第一次查询出来的 myList 放入 session 中(对于非海量数据),每次更新一条数据的时候,更新数据库同时更新session中相应的那条信息。
2。每次更新完一条信息的时候,重新从数据库中读取数据
这两种方法各有利弊,不知道大家在项目中碰到这样的情况怎么处理?