【问题标题】:Having difficulty pulling data from oracle database to javabean and jsp难以将数据从 oracle 数据库拉到 javabean 和 jsp
【发布时间】:2011-08-17 17:55:01
【问题描述】:

我有一个名为 FanBean 的 javabean,它下面有这个函数,可以从 oracle 数据库中提取数据

 public java.util.Vector getList() {

        java.util.Vector myFanList = new java.util.Vector();
        StringBuffer sql = new StringBuffer();

        DbUtil db = null;
        ResultSet rset = null;

            db = new DbUtil();

            sql.append(" SELECT id_no, name");
                if ((this.getSelectedFanType() != null)&& (this.getSelectedFanType().equals("1"))){
                    sql.append("  from my_fan ");
                }

                if ((this.getSelectedFanType() != null)&& (this.getSelectedFanType().equals("2"))){
                    sql.append("  from my_fan ");
                    sql.append("  where id_no = '");
                    sql.append(this.getSearchVar());
                    sql.append("'");
                }

                if ((this.getSelectedFanType() != null)&& (this.getSelectedFanType().equals("3"))){
                    sql.append("  from my_fan ");
                    sql.append("  where name = '");
                    sql.append(this.getSearchVar());
                    sql.append("'");
                }



            if (this.getSelectedSort() != null) {
                if(this.getSelectedSort().equals("1"))
                    sql.append(" ORDER BY id_no");
                else if(this.getSelectedSort().equals("2"))
                    sql.append(" ORDER BY name");
                else
                    sql.append(" ORDER BY id_no");
            } else
                sql.append(" ORDER BY id_no");

            rset =  db.executeQuery(sql.toString(),true);

            if (rset != null) {
                while(rset.next()) {
                    FanBean myFan = new FanBean();
                    myFan.setIdNo(rset.getString(1).trim());
                    myFan.setName(rset.getString(2));


                myFanList.addElement(myFan);
                Enumeration e = myFanList.elements();
                while (e.hasMoreElements()) {
                FanBean nextFan = (FanBean) e.nextElement();
                this.addDtlItem(nextFan.getIdNo(), nextFan.getName());
                }
                }
            }

        }

    return myFanList;
    }

我有这个函数可以将数据添加到 FanItemBean java bean

public void addDtlItem(String idNo, String name )
    {
        FanItemBean detailItem = new FanItemBean(idNo, name);
        _dtlListArray.add(detailItem);

    }

最后在 jsp 中我像这样提取数据

 <%
    Collection dtlItems = fanBean.getDetailItems();
    Iterator it = dtlItems.iterator();
    int i = 0;
    String colorStr = null;


    while(it.hasNext()){
        FanItemBean fanDtlItem = (FanItemBean) it.next();

    %>

        <TR>
            <TD><%= fanDtlItem.getIdNo()%></TD>
            <TD><%= fanDtlItem.getName()%></TD>
        </TR>
<% 
  i++;
} %>

谁能告诉我在这个循环中我做错了什么,我在 jsp 页面中没有得到任何数据。谢谢

【问题讨论】:

  • 只是检查,但您确定您的 JSP 工作正常吗?看起来在 JSP 中的脚本中,您的 while 循环缺少一个结束“}”(假设您直接从 JSP 复制了它,我确信这会导致问题)。
  • 哦,对不起,我忘了添加它..我有那个..
  • 在哪里将 bean 添加到请求上下文中?你使用 servlet 吗?

标签: java sql oracle jsp


【解决方案1】:

这段代码似乎有很多问题。

  1. _dltListArray 在哪里定义和初始化?

  2. rs.next() 的 while 循环似乎不正确。您将元素添加到列表中并立即迭代枚举,而不是等待 while() 循环的其余部分完成。这是正确代码。

      if (rset != null) {
            while(rset.next()) {
                FanBean myFan = new FanBean();
                myFan.setIdNo(rset.getString(1).trim());
                myFan.setName(rset.getString(2));
    
    
                myFanList.addElement(myFan);
           } // FINISH ADDING ALL RESULTS TO YOUR LIST BEFORE ITERATING OVER THE ENUMERATION
    
           Enumeration e = myFanList.elements();
           while (e.hasMoreElements()) {
             FanBean nextFan = (FanBean) e.nextElement();
             this.addDtlItem(nextFan.getIdNo(), nextFan.getName());
           }
        }
    
  3. 另外,您的 FanBean 和 FanItemBean 看起来相同。为什么不直接将其添加到您的列表中,而不是通过中间向量?

  4. 对使用 Java 1.5 和泛型有任何具体限制吗?

  5. 另外,您在 jsp 的哪个位置调用 getList() 方法?

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-17
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多