从数据存储层取得的大量记录怎样较好地传递给业务逻辑层?(用collection肯定会影响效率)

wu_yang 2002-07-06 01:54:59
mvc结构要求业务逻辑层与数据存储层分离
但浏览,查询时往往要从数据库取大量记录,用collection封装的话,就要根据
这些记录生成大量业务对象结合进一个非常大的collection传给业务逻辑层。但
这成百上千个业务对象肯定会影响效率,消耗大量资源,怎样解决这个问题?
我的想法是不直接传递collection对象给业务层,而是传递一个iterator对象,不
生成大量业务对象,封装了对取得resultset的遍历操作,但collection的其他操作
就无法实现了。
还有其他思路吗?
...全文
131 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony2000_tang 2002-07-09
  • 打赏
  • 举报
回复
写存储过程,那在移植到别的数据库是不是要改程序了!
我最近也碰到这个问题,用ejb取出大量的数据!
可不可以考虑用xml文件保存到一个中间层,在用xml-rpc的方式访问xml文件!
pingju 2002-07-09
  • 打赏
  • 举报
回复
to 楼主:

当对单条记录、或记录不多的更改,插入。。操作时候采用EJB/mvc模式教好。
当读取大量记录时候,直接采用jdbc。既暴露resultset.用分页。
当插入大量记录时候,最好用存储过程
ajoo 2002-07-09
  • 打赏
  • 举报
回复
write your own interface. define all the operations you want to have in it.
then implement it.
pingju 2002-07-09
  • 打赏
  • 举报
回复
是的,rowset可以试试
还有你插入的大量数据如果不是同步等待的,可以用JMS
三合一 2002-07-09
  • 打赏
  • 举报
回复
用rowset试试
0A
他在对多记录操作时很好用的
0A^^^^^^^^^^^^^^------------------^^^^^^^^^^^^^^^^^^^^^
daehappy 2002-07-07
  • 打赏
  • 举报
回复
up!gz!
mikehofly 2002-07-06
  • 打赏
  • 举报
回复
你不用分页显示吗?写存储过程啊!
SELECT *
FROM News
WHERE (newsId IN
(SELECT TOP 7 newsId
FROM News)) AND (newsId NOT IN
(SELECT TOP 4 newsId
FROM News))


SELECT *
FROM (SELECT TOP 3 *
FROM (SELECT TOP 7 newsId
FROM News) DERIVEDTBL
ORDER BY newsId DESC) DERIVEDTBL
ORDER BY newsId
cloudwindbase 2002-07-06
  • 打赏
  • 举报
回复
按需取数据集。
不要一次全部取完,可以根据当前显示和处理的需要有选择地取得。
oceanboywjk 2002-07-06
  • 打赏
  • 举报
回复
还有一种理所当然的方法就是先取得记录集的记录总数,然后分开几次去连接数据库取得较大数量但又不至于影响系统速度的记录集,然后汇总所有记录集,当然,每次的返回都是collection,我不觉得用它封装有多消耗资源。

62,634

社区成员

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

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