replica watches | rolex replica | replica rolex | replica watches | christian louboutin shoes | replica watches | fake watches | replica watches

JSP页面查询显示常用模式

来源: csdn   日期:2009-04-19  我要评论  胶粘剂 结构胶 硅胶 密封胶 中国胶粘剂网
背景: 1. 需要将数据库查询结果在JSP中以列表方式显示 2. 在一个良好的J2EE模式中数据库查询一般用DAO实现(Data Access Object), 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>

顶一下
(1)
100%
踩一下
(0)
0%
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码: