程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> Java Web開發之信息查詢方式總結

Java Web開發之信息查詢方式總結

編輯:關於JSP

本文實例講述了Java Web開發之信息查詢方式總結。分享給大家供大家參考。具體如下:

這裡介紹的查詢方式有:

① 根據某個特定的字段查詢;
② 在多個字段中查詢;
③ 根據任意字段查詢;
④ 任意字段組合查詢;
⑤ 多值查詢。

根據某個特定的字段進行查詢

用戶在輸入界面中輸入要查詢的字段的值,然後系統根據這個值進行查找。
下面的實例是根據用戶名查詢用戶的詳細信息,簡單的效果圖如下:

關鍵代碼如下:

<p>請輸入要查詢的姓名:</p>
<form action="select.jsp" method="POST">
 <p><input type="text" name="username" size="20"><input type="submit" value="提交" name="B1"><input type="reset" value="全部重寫" name="B2"></p>
</form>

處理文件的代碼如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%
  StringBuffer sql=new StringBuffer();
  //查詢字符串
  String username = request.getParameter("username");
  //查詢的條件
  if(username==null||username.length()==0)
  {
   out.println("請輸入查詢條件!");
  }
  else
  {
   sql.append("select * from user where username like '");
   sql.append(username);
   sql.append("'");
  }
  //接下來根據上面生成的sql進行查詢即可
%>

這裡主要關心SQL語句即可,查詢過程和顯示過程參考其它主題。
上面進行的是精確的查詢,可以進行模糊查詢,例如可以查詢用戶名包含某個字的用戶的信息。

只需要修改代碼中的查詢語句部分,修改後的代碼如下:

sql.append("select * from user where username like '%");
sql.append(username);
sql.append("%'");

僅僅增加了模糊查詢的通配符“%”,如果要查詢以什麼開頭,去掉前面的通配符即可,如果查詢以什麼結束,去掉後面的同配符即可。
 
在多個字段中查詢

假設有一個關於Java技術的BBS,每個記錄都有標題、摘要、內容等字段,這裡我們忽略其它字段,如果用戶希望查看關於編碼的問題,他希望不管是在標題、摘要還是內容中只要包含他輸入的信息都應該能夠查詢出來,這時候就需要在多個字段中查詢。

關鍵代碼如下:

<p>請輸入要查詢的關鍵字:</p>
<form action="select.jsp" method="POST">
 <p><input type="text" name="condition" size="20"><input type="submit" value="提交" name="B1"><input type="reset" value="全部重寫" name="B2"></p>
</form>

查詢的處理代碼如下:

<%@ page contentType="text/html;charset=gb2312"%>
<%
  StringBuffer sql=new StringBuffer();
  //查詢字符串
  String condition =request.getParameter("condition");
  //查詢的條件
  if(condition==null||condition.length()==0)
  {
   out.println("請輸入查詢條件!");
  }
  else
  {
   sql.append("select * from user where title like '%");
   sql.append(condition);
   sql.append("%' and summary like '%");
   sql.append(condition);
   sql.append("%' and detail like '%");
   sql.append(condition);
   sql.append("%'");
  }
  //接下來根據上面生成的sql進行查詢即可
%>

根據任意字段查詢

可以讓用戶選擇根據什麼進行查詢,然後輸入要查詢的值,這樣的查詢比較復雜,但是對於用戶來說最方便。

處理文件:

<%@ page contentType="text/html;charset=gb2312"%>
<%
  StringBuffer sql=new StringBuffer();
  //查詢字符串
  String condition = request.getParameter("condition");
  //查詢的字段
  String v = request.getParameter("v");
  //查詢的值
  if(v.length()==0)
  {
   out.println("請輸入查詢條件!");
  }
  else
  {
   sql.append("select * from user where ");
   //根據用戶選擇的字段進行處理
   if(condition.equals("a"))
     sql.append(" a like '");
   else if(condition.equals("b"))
     sql.append(" b like '");
   else
     sql.append(" c like '");
   sql.append(v);
   sql.append("'");
   /*
   如果界面中下拉列表中的條件是數據庫中字段的名字,上面的代碼會非常簡單:
   sql.append("select * from user where ");
   sql.append(condition);
   sql.append(" like '");
   sql.append(v);
   sql.append("'");
   */
  }
  //接下來根據上面生成的sql進行查詢即可
%>

任意組合查詢

把所以可以查詢的字段全部列出來,每個字段對應一個輸入框,用戶可以根據某個字段或者某幾個字段進行查詢,需要根據什麼查詢,在相應的輸入框中輸入信息即可。

查詢的處理文件:

<%@ page contentType="text/html;charset=gb2312"%>
<%
  StringBuffer sql=new StringBuffer();
  //查詢字符串
  String a = request.getParameter("a");
  String b = request.getParameter("b");
  String c = request.getParameter("c");
  String d = request.getParameter("d");
  //獲取用戶輸入的查詢條件
  sql.append("select * from user where");
  if(a.length()!=0)
  {
   sql.append(" a like '");
   sql.append(a);
   sql.append("' and");
  }
  if(b.length()!=0)
  {
   sql.append(" b like '");
   sql.append(b);
   sql.append("' and");
  }
  if(c.length()!=0)
  {
   sql.append(" c like '");
   sql.append(c);
   sql.append("' and");
  }
  if(d.length()!=0)
  {
   sql.append(" d like '");
   sql.append(d);
   sql.append("' and");
  }
  sql.trim(sql.length-3,3);
  //刪除最後的4個字母(" and")
  //接下來根據上面生成的sql進行查詢即可
%>

多值查詢

用戶在單個輸入框輸入多個數據進行查詢,可以查詢某個字段同時包含多個關鍵字,例如查詢主題中既包含“java”又包含“C++”的記錄,或者一個數字區間,例如年齡在19和22之間的記錄,或者一個時間范圍,例如出生在1981年1月1日和1983年12月31日之間的記錄。

這裡只介紹按照數字區間進行查找的,其它情況的實現基本相同。

處理文件:

<%@ page contentType="text/html;charset=gb2312"%>
<%
  StringBuffer sql=new StringBuffer();
  //查詢字符串
  String condition = request.getParameter("condition");
  //獲取查詢條件
  int index = condition.indexof(" ");
  //查找空格位置,空格作為兩個數字的分隔符
  String min=condition.subString(1,index);
  //前面的值
  String max=condition.subString(index+1,condition.length-1);
  //後面的值
  try
  {
   Integer.parseInt(min);
   Integer.parseInt(max);
  }catch(Exception e)
  {
   out.println("輸入的信息不合法!");
   return;
  }
  sql.append("select * from user where age between ");
  sql.append(min);
  sql.append(" and ");
  sql.append(max);
  //構造查詢字符串
  //接下來根據上面生成的sql進行查詢即可
%>

希望本文所述對大家的JSP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved