不知道各位在利用Hashtable和Vector返回数据集时,是怎么用的。用在什么情况下,
我原来也写过用数组和Vector返回数据集。当时就是用一个for循环把记录集显示出来的。请见:
<%
Vector boardList = boBean.getBoardList();
for (int i = 0; i < boardList.size(); ++i) {
String[] sa = (String[])boardList.elementAt(i);
%>
    <tr
      <td><%=sa[0]%></td>
      <td><%=sa[1]%></td>
    </tr>
    <%
}
%>不知道这2中方法有什么区别。或者说那种好

解决方案 »

  1.   

    你两次用的不都是vector吗!
    1,Vector rsList = rsBean.getListTableResult(sqlStr);
    2,Vector boardList = boBean.getBoardList();
      

  2.   

    第一种方法是错误的:
    ListRs.add(htable);这样的意思是将htable放在ListRs里面
    如果ListRs原来是空白的,那么执行以后ListRs就会有一个元素,
    这个元素就是htable而且还有htable.put(rsmd.getColumnName(i),tmpStr)这样意思是按照列名
    存放到htable里面,但是如果名称相同则会进行覆盖了实际上,虽然你测试的行数是正确的,但是ListRs里面所有元素都是一样的htable,就是最后一条记录的内容应该在
    while (rs.next()) {
    加上 htable = new Hashtable();
      

  3.   

    还是有点不同,第一中是Vector中是Hashtable。
    第二种是数组。
    for循环中的操作肯定不能用
    String[] sa = (String[])boardList.elementAt(i);请问怎么写呢!
      

  4.   

    不好意思,没看清,请参考:
    http://expert.csdn.net/Expert/topic/1385/1385308.xml?temp=.3602564
      

  5.   

    楼主的javabean设计有问题,没有人会把记录行放在hashtable里,这样的代码难于维护,难于扩充,难于重用,jsp难于阅读,效率极低.
    sql语句根本就不应该出现在jsp中,最起码也要封装在javabean中,O-R映射是数据库开发的关键问题,至今没有一个完美的解决方案,建议楼主有空研究一下jive或petstore的源代码.