佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > Java Web開發(fā)之信息查詢方式總結(jié)

Java Web開發(fā)之信息查詢方式總結(jié)

熱門標(biāo)簽:科大訊飛語音識(shí)別系統(tǒng) 阿里云 銀行業(yè)務(wù) 電子圍欄 Linux服務(wù)器 Mysql連接數(shù)設(shè)置 團(tuán)購網(wǎng)站 服務(wù)器配置

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

這里介紹的查詢方式有:

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

根據(jù)某個(gè)特定的字段進(jìn)行查詢

用戶在輸入界面中輸入要查詢的字段的值,然后系統(tǒng)根據(jù)這個(gè)值進(jìn)行查找。
下面的實(shí)例是根據(jù)用戶名查詢用戶的詳細(xì)信息,簡單的效果圖如下:

關(guān)鍵代碼如下:

p>請(qǐng)輸入要查詢的姓名:/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("請(qǐng)輸入查詢條件!");
  }
  else
  {
   sql.append("select * from user where username like '");
   sql.append(username);
   sql.append("'");
  }
  //接下來根據(jù)上面生成的sql進(jìn)行查詢即可
%>

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

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

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

僅僅增加了模糊查詢的通配符“%”,如果要查詢以什么開頭,去掉前面的通配符即可,如果查詢以什么結(jié)束,去掉后面的同配符即可。
 
在多個(gè)字段中查詢

假設(shè)有一個(gè)關(guān)于Java技術(shù)的BBS,每個(gè)記錄都有標(biāo)題、摘要、內(nèi)容等字段,這里我們忽略其它字段,如果用戶希望查看關(guān)于編碼的問題,他希望不管是在標(biāo)題、摘要還是內(nèi)容中只要包含他輸入的信息都應(yīng)該能夠查詢出來,這時(shí)候就需要在多個(gè)字段中查詢。

關(guān)鍵代碼如下:

p>請(qǐng)輸入要查詢的關(guān)鍵字:/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("請(qǐng)輸入查詢條件!");
  }
  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("%'");
  }
  //接下來根據(jù)上面生成的sql進(jìn)行查詢即可
%>

根據(jù)任意字段查詢

可以讓用戶選擇根據(jù)什么進(jìn)行查詢,然后輸入要查詢的值,這樣的查詢比較復(fù)雜,但是對(duì)于用戶來說最方便。

處理文件:

%@ 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("請(qǐng)輸入查詢條件!");
  }
  else
  {
   sql.append("select * from user where ");
   //根據(jù)用戶選擇的字段進(jìn)行處理
   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("'");
   /*
   如果界面中下拉列表中的條件是數(shù)據(jù)庫中字段的名字,上面的代碼會(huì)非常簡單:
   sql.append("select * from user where ");
   sql.append(condition);
   sql.append(" like '");
   sql.append(v);
   sql.append("'");
   */
  }
  //接下來根據(jù)上面生成的sql進(jìn)行查詢即可
%>

任意組合查詢

把所以可以查詢的字段全部列出來,每個(gè)字段對(duì)應(yīng)一個(gè)輸入框,用戶可以根據(jù)某個(gè)字段或者某幾個(gè)字段進(jìn)行查詢,需要根據(jù)什么查詢,在相應(yīng)的輸入框中輸入信息即可。

查詢的處理文件:

%@ 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個(gè)字母(" and")
  //接下來根據(jù)上面生成的sql進(jìn)行查詢即可
%>

多值查詢

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

這里只介紹按照數(shù)字區(qū)間進(jìn)行查找的,其它情況的實(shí)現(xiàn)基本相同。

處理文件:

%@ page contentType="text/html;charset=gb2312"%>
%
  StringBuffer sql=new StringBuffer();
  //查詢字符串
  String condition = request.getParameter("condition");
  //獲取查詢條件
  int index = condition.indexof(" ");
  //查找空格位置,空格作為兩個(gè)數(shù)字的分隔符
  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);
  //構(gòu)造查詢字符串
  //接下來根據(jù)上面生成的sql進(jìn)行查詢即可
%>

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

您可能感興趣的文章:
  • java實(shí)現(xiàn)商品信息管理系統(tǒng)
  • Java用list儲(chǔ)存,遍歷,查詢指定信息過程詳解
  • java抓取12306信息實(shí)現(xiàn)火車余票查詢示例
  • java操作mongodb基礎(chǔ)(查詢 排序 輸出list)
  • 在Java的Hibernate框架中對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行查詢操作
  • 使用Java對(duì)數(shù)據(jù)庫進(jìn)行基本的查詢和更新操作
  • java操作mysql入門代碼實(shí)例(含插入、更新和查詢)
  • java使用淘寶API讀寫json實(shí)現(xiàn)手機(jī)歸屬地查詢功能代碼
  • java 中mongodb的各種操作查詢的實(shí)例詳解
  • JAVA基于數(shù)組實(shí)現(xiàn)的商品信息查詢功能示例

標(biāo)簽:棗莊 蚌埠 大理 萍鄉(xiāng) 江蘇 衢州 廣元 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Java Web開發(fā)之信息查詢方式總結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    阳西县| 台南市| 临湘市| 德钦县| 金堂县| 红安县| 长治市| 玛沁县| 札达县| 龙门县| 芒康县| 维西| 通山县| 互助| 巴马| 新竹县| 扎赉特旗| 茂名市| 安康市| 屏边| 皮山县| 玛纳斯县| 延寿县| 繁昌县| 娄烦县| 任丘市| 周至县| 重庆市| 石城县| 苍南县| 安图县| 芷江| 南靖县| 达尔| 建湖县| 镇远县| 墨竹工卡县| 比如县| 江华| 湟中县| 彭阳县|