主頁(yè) > 知識(shí)庫(kù) > jsp頁(yè)面常用的查詢及顯示方法分析

jsp頁(yè)面常用的查詢及顯示方法分析

熱門標(biāo)簽:南昌市地圖標(biāo)注app 南京新思維電話機(jī)器人 百度地圖添加標(biāo)注圖標(biāo)樣式 企業(yè)怎么在聯(lián)通申請(qǐng)400電話 如何用中國(guó)地圖標(biāo)注數(shù)字點(diǎn) 好操作的電話機(jī)器人廠家 地圖標(biāo)注市場(chǎng)怎么樣 泰州泰興400電話 怎么申請(qǐng) 聊城智能電銷機(jī)器人外呼

本文實(shí)例講述了jsp頁(yè)面常用的查詢及顯示方法。分享給大家供大家參考,具體如下:

背景:

1. 需要將數(shù)據(jù)庫(kù)查詢結(jié)果在JSP中以列表方式顯示
2. 在一個(gè)良好的J2EE模式中數(shù)據(jù)庫(kù)查詢一般用DAO實(shí)現(xiàn)(Data Access Object), JSP僅用于顯示數(shù)據(jù)

方法一:

建一個(gè)類,將查詢出的結(jié)果封裝到該類中,然后將該類對(duì)象添加到List中。(這個(gè)也是我最開(kāi)始時(shí)用的方法,不通用且太麻煩了)。

方法二:

在介紹方法二的時(shí)候,我們先來(lái)看看如何把ResultSet轉(zhuǎn)化為L(zhǎng)ist吧,代碼如下:

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取出所有數(shù)據(jù)封裝進(jìn)Collection。

具體做法:

1. 生成一個(gè)List對(duì)象(List list = new ArrayList() )。
2. 生成一個(gè)Map對(duì)象(Map map = new HashMap() )。使用Map封裝一行數(shù)據(jù),key為各字段名,value為對(duì)應(yīng)的值。(map.put("USER_NAME"), rs.getString("USER_NAME"))
3. 將第2 步生成的Map對(duì)象裝入第1步的list對(duì)象中(list.add(map) )。
4. 重復(fù)2、3步直到ResultSet遍歷完畢

在DBUtil. resultSetToList(ResultSet rs)方法中實(shí)現(xiàn)了上述過(guò)程(所有列名均使用大寫),可參考使用。

示例代碼:

//查詢數(shù)據(jù)部分代碼:
…
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對(duì)該接口有相應(yīng)實(shí)現(xiàn),其中很有用的是oracle.jdbc.rowset.OracleCachedRowSet。 OracleCachedRowSet實(shí)現(xiàn)了ResultSet中的所有方法,但與ResultSet不同的是,OracleCachedRowSet中的數(shù)據(jù)在Connection關(guān)閉后仍然有效。

oracle的rowset實(shí)現(xiàn)在http://otn.oracle.com/software/content.html的jdbc下載里有,名稱是ocrs12.zip

示例代碼:

//查詢數(shù)據(jù)部分代碼:
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();

希望本文所述對(duì)大家jsp程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • JS實(shí)現(xiàn)微信彈出搜索框 多條件查詢功能
  • 原生js實(shí)現(xiàn)查詢天氣小應(yīng)用
  • 簡(jiǎn)單封裝js的dom查詢實(shí)例代碼
  • JavaScript按日期查詢MongoDB中的數(shù)據(jù)的要點(diǎn)示例
  • JSP簡(jiǎn)單添加,查詢功能代碼
  • 純javascript判斷查詢?nèi)掌谑欠駷橛行掌?/li>
  • JavaScript生成SQL查詢表單的方法
  • JavaScript獲得url查詢參數(shù)的方法
  • javascript查詢字符串參數(shù)的方法
  • js模糊查詢實(shí)例分享

標(biāo)簽:自貢 開(kāi)封 吉林 臨汾 山南 烏蘭察布 銅川 白銀

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《jsp頁(yè)面常用的查詢及顯示方法分析》,本文關(guān)鍵詞  jsp,頁(yè)面,常用的,常,用的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《jsp頁(yè)面常用的查詢及顯示方法分析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于jsp頁(yè)面常用的查詢及顯示方法分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章