当前位置导航:炫浪网>>网络学院>>网页制作>>JSP教程

JSP页面查询显示常用模式

    背景:

    1.    需要将数据库查询结果在JSP中以列表方式显示

    2.    在一个良好的J2EE模式中数据库查询一般用DAO实现(Data Access Object), JSP仅用于显示数据

    问题:通过JDBC ResultSet可获取查询结果(存在于数据库缓冲区内),但在Statement、Connection关闭后ResultSet即不可用。因此需要一种方式取出所有查询结果并传递至JSP页面。

    解决方法一:

    使用Value Object.将每条记录均封装成JavaBean对象,把这些对象装入Collection传送给JSP显示。这种方法的缺点是每一种查询都需要定义一个java class,并且将记录数据封装成java对象时也需要很多额外的代码。

    示例代码:

//查询数据代码
  Connection conn = DBUtil.getConnection();
  PreparedStatement pst = null;
  ResultSet rs = null;
  try{
    String sql=“select emp_code, real_name from t_employee where organ_id=?”;
    pst = conn.preparedStatement(sql);
    pst.setString(1, “101”);
    ResultSet rs = pst.executeQuery();
    List list = new ArrayList();
    Employee emp;
    while (rs.next()){
      emp = new Employee();
      emp.setReakName(rs.getString(“real_name”));
      emp.setEmpCode(rs.getString(“emp_code”));
      …
      list.add(emp);
    }
    return list;
  }finally{
    DBUtil.close(rs, pst ,conn);
  }


//jsp显示部分代码
<%
  List empList = (List)request.getAttribute(“empList”);
  if (empList == null) empList = Collections.EMPTY_LIST;
%>

<table  cellspacing="0" width=”90%”>
    <tr>  <td>代码</td> <td>姓名</td>  </tr>
<%
  Employee emp;
  for (int i=0; i< empList.size(); i++){
    emp = (Employee) empList.get(i);
%>
    <tr>
      <td><%= emp.getEmpCode()%></td>
      <td><%= emp.getRealName()%></td>
    </tr>
<%
  }// end for
%>
</table>

共4页 首页 上一页 1 2 3 4 下一页 尾页 跳转到
相关内容
赞助商链接