banq http://www.jdon.com aug 21, 2002 2:23 pm
这里就有一个普遍疑问,我这个javabean是返回resultset到jsp中还是collection? 【程序编程相关:Tiger系列三:Annotation第】既然我们把数据库访问封装起来了,那么如果查询数据库返回的是一系列结果,比如我们从数据库中得到所有人的用户名,然后在jsp页面显示出来. 【推荐阅读:网络在线游戏开发心得(服务器端)(四)】
但是返回collection效率不是很高,因为意味着在内存中要开辟一个内存存放所有的结果. 【扩展信息:写了一个J2ME里操作日期的类,只有一个】我曾经有段时间图省事,直接返回resultset,然后在我的jsp页面中是大量的resultset遍历.这其实还是将数据层与显示层混淆在一起.在ejb cmp中,返回的是collection,这样偶合性降低,不用在修改数据库结构后,一直修改程序到前台jsp页面,这与以前的php asp开发方式没两样.我看了http://builder.com.com/article.jhtml?id=u00220020814r4b01.htm这篇文章后,觉得启发很大,返回iterator就可以了.iterator也是个模式,在jive中大量使用了iterator,我以前很奇怪,为什么他没事自己写个iterator,现在知道原因了,这样节省内存,而且效率高.看下面比较:public list getusers() { resultset rs = userdbquery();list retval = new arraylist();while (rs.next()) {retval.add(rs.getstring(1));}return retval;}上面是个我们采取返回collection后最常用的方法,将resultset中的用户名加入list再返回,显然这很耗费内存.... 下一页