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程序设计有所帮助。

(0)

相关推荐

  • JavaScript获得url查询参数的方法

    本文实例讲述了JavaScript获得url查询参数的方法.分享给大家供大家参考.具体实现方法如下: function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="

  • javascript查询字符串参数的方法

    本文实例讲述了javascript查询字符串参数的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /* 解析查询字符串 返回包含所有参数的一个对象 */    function getQueryStringArgs(){       //取得查询字符串并去掉开头的问号     var qs = (location.search.length > 0 ? location.search.substring(1) : '');       //保存数据的对象     args

  • 原生js实现查询天气小应用

    本文实例为大家分享了js查询天气应用,供大家参考,具体内容如下 demo:  https://zsqosos.github.io/weather/ 实现功能:打开网页时显示用户所在城市的天气状况,在输入框输入城市可查询其它城市. 实现过程:先调用百度地图的API来获取用户所在的城市,随后调用聚合数据的天气API将数据放在页面上.由于ajax不支持跨域,所以采用了jsonp的方式来调用数据. 实现的原理比较简单,HTML和css比较长,我就只将js代码贴出来,想看完整代码的朋友可以去我的githu

  • JSP简单添加,查询功能代码

    本文实例讲述了JSP简单添加,查询功能.分享给大家供大家参考.具体如下: JSP技术: public class ISOtoGb2312 { public static String convert( String str ) { try { byte<> bytesStr=str.getBytes( "ISO-8859-1" ) ; return new String( bytesStr, "gb2312" ) ; } catch( Exception

  • 纯javascript判断查询日期是否为有效日期

    以下内容主要通过js代码给大家介绍,代码比较简单,包含注释,有好的建议欢迎提出. 如下图,当查询条件含有日期时,如"2012-3-4",查询前校验输入的日期字符串是否为有效的日期 var snapshot_createTime_begin=$(selector+" input[name='createTime_begin']").val().trim(); var snapshot_createTime_end=$(selector +" input[na

  • JavaScript按日期查询MongoDB中的数据的要点示例

    group by date 聚合查询日期 统计每天数据(信息量) 1 { "_id" : ObjectId("557ac1e2153c43c320393d9d"), "msgType" : "text", "sendTime" : ISODate("2015-06-12T11:26:26.000Z") } 2 { "_id" : ObjectId("557a

  • 简单封装js的dom查询实例代码

    最近一直在啃犀牛书,有感,于是写了个简单的js的dom查询 $ = function (val) { switch(val.charAt(0)) { case '#' : return document.getElementById(val.substring(1)); break; case '.' : val = val.replace('.',''); if(document.getElementsByClassName) return document.getElementsByClas

  • JavaScript生成SQL查询表单的方法

    本文实例讲述了JavaScript生成SQL查询表单的方法.分享给大家供大家参考.具体如下: 这里使用JavaScript生成复杂的SQL查询表单,运行一下就明白了,它可以根据选择的查询条件,自动修改你的SQL语句,是一个很典型的应用. 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

  • JS实现微信弹出搜索框 多条件查询功能

    效果图如下所示: JS实现微信弹出搜索框 多条件查询功能的实现代码如下所示: <!--<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ include file="/WEB-INF/views/include/mtaglib.jsp"%>--> <!DOCTYPE html> <

  • js模糊查询实例分享

    首先要明白什么是模糊查询(废话又来了),就是根据关键字把列表中符合关键字的一项或某项罗列出来,也就是要检查列表的每一项中是否含有关键字,因此抽象一下就是一个字符串中是否含有某个字符或者字符串. 以下例子没有接触到后台数据的知识,只是查询当前表格中每一行所包含的关键字. 用到的方法为:string.indexOf(''); 找出字符串中某个字符的位置,而如果没有目标字符会返回-1. 实现代码: <meta charset="UTF-8"> <title></

随机推荐