• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    jsp页面常用的查询及显示方法分析

    本文实例讲述了jsp页面常用的查询及显示方法。分享给大家供大家参考,具体如下:

    背景:

    1. 需要将数据库查询结果在JSP中以列表方式显示
    2. 在一个良好的J2EE模式中数据库查询一般用DAO实现(Data Access Object), JSP仅用于显示数据

    方法一:

    建一个类,将查询出的结果封装到该类中,然后将该类对象添加到List中。(这个也是我最开始时用的方法,不通用且太麻烦了)。

    方法二:

    在介绍方法二的时候,我们先来看看如何把ResultSet转化为List吧,代码如下:

    private static List resultSetToList(ResultSet rs) throws SQLException {
     List list = new ArrayList();
     ResultSetMetaData md = rs.getMetaData();
     int columnCount = md.getColumnCount();
     while (rs.next()) {
      Map rowData = new HashMap();
      for (int i = 1; i = columnCount; i++) {
      rowData.put(md.getColumnName(i), rs.getObject(i));
      }
      list.add(rowData);
     }
     return list;
    }
    
    

    遍历ResultSet取出所有数据封装进Collection。

    具体做法:

    1. 生成一个List对象(List list = new ArrayList() )。
    2. 生成一个Map对象(Map map = new HashMap() )。使用Map封装一行数据,key为各字段名,value为对应的值。(map.put("USER_NAME"), rs.getString("USER_NAME"))
    3. 将第2 步生成的Map对象装入第1步的list对象中(list.add(map) )。
    4. 重复2、3步直到ResultSet遍历完毕

    在DBUtil. resultSetToList(ResultSet rs)方法中实现了上述过程(所有列名均使用大写),可参考使用。

    示例代码:

    //查询数据部分代码:
    …
    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");
    rs = pst.executeQuery();
    List list = DBUtil. resultSetToList(ResultSet rs);
    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>
    %
    Map colMap;
    for (int i=0; i empList.size(); i++){
    colMap = (Map) empList.get(i);
    %>
    tr>
    td>%=colMap.get("EMP_CODE")%>/td>
    td>%=colMap.get("REAL_NAME")%>/td>
    /tr>
    %
    }// end for
    %>
    /table>
    
    

    解决方法三:

    使用RowSet。

    RowSet是JDBC2.0中提供的接口,Oracle对该接口有相应实现,其中很有用的是oracle.jdbc.rowset.OracleCachedRowSet。 OracleCachedRowSet实现了ResultSet中的所有方法,但与ResultSet不同的是,OracleCachedRowSet中的数据在Connection关闭后仍然有效。

    oracle的rowset实现在http://otn.oracle.com/software/content.html的jdbc下载里有,名称是ocrs12.zip

    示例代码:

    //查询数据部分代码:
    import javax.sql.RowSet;
    import oracle.jdbc.rowset.OracleCachedRowSet;
    …
    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");
    rs = pst.executeQuery();
    OracleCachedRowSet ors = newOracleCachedRowSet();
    
    

    希望本文所述对大家jsp程序设计有所帮助。

    您可能感兴趣的文章:
    • JS实现微信弹出搜索框 多条件查询功能
    • 原生js实现查询天气小应用
    • 简单封装js的dom查询实例代码
    • JavaScript按日期查询MongoDB中的数据的要点示例
    • JSP简单添加,查询功能代码
    • 纯javascript判断查询日期是否为有效日期
    • JavaScript生成SQL查询表单的方法
    • JavaScript获得url查询参数的方法
    • javascript查询字符串参数的方法
    • js模糊查询实例分享
    上一篇:jsp获取url路径的方法分析
    下一篇:jsp编程常用技巧小结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    jsp页面常用的查询及显示方法分析 jsp,页面,常用的,常,用的,