"select * from article where title like ?"
成都創(chuàng)新互聯(lián)是專業(yè)的田家庵網(wǎng)站建設(shè)公司,田家庵接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行田家庵網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
preparedStatement.setString(0,"內(nèi)容");//這里具體是1還是0忘了
_代表一個為任意字符
%代表多個任意字符
比如:_ei,將匹配像Aei,Bei,Cai類似的字符
這就是模糊查詢了把!
java中參數(shù)作為一個變量,sql語句寫為
string sql_str = "select * from tb where name like '%"+參數(shù)+"%' ";
試試!
有了這個方法 查詢就是浮云
申明:本方法由本人自行研究 如有不足之處請留言以及更正或者有更好的分頁方法 可以留言共享
總所周知:java開發(fā)web程序不管是什么項目基本都會遇到分頁 然而SSH2框架有多重搭建方式,當(dāng)然,每個人自己搭建的框架都比較了解開發(fā)起來得心應(yīng)手,克往往開發(fā)項目的是一個團隊。其他成員不一定習(xí)慣用你的方法..每個人寫的方法也不一樣..比如有帶參的等等....
有一定程序功底的程序員 會自己寫分頁方法方便自己,但是當(dāng)別人不熟悉你的方式時電泳其實很有可能該這么傳參都不知道..你還要寫一個案例供他人參考。閑話不多說我們進入正題。
今天我就給大家總結(jié)下我所搭建的SSH2框架中的分頁方法..
首先我們先寫一個有參數(shù)方法:selectByPages()
此方法有 每頁顯示多說條數(shù)據(jù) pageSize 第幾頁pageNum 、SQL語句 hql、
另外還要一個Object數(shù)組 Object... params 或者Object[]params 都可以
注意:這里的參數(shù)類型前傾加上 final 標示
//此方法執(zhí)行帶參分頁前往數(shù)據(jù)庫查詢數(shù)據(jù)
protected List selectByPages(final int pageSize, final int pageNum,final String hql, final Object... params) {
return (List)getHibernateTemplate().executeFind(new HibernateCallback() {
public List doInHibernate(org.hibernate.Session session)throws org.hibernate.HibernateException,java.sql.SQLException {
org.hibernate.Query query = session.createQuery(hql);
for (int i = 0; i params.length; i++) { //循環(huán)參數(shù)數(shù)組
query.setParameter(i , params[i]);
}
query.setFirstResult((pageNum - 1) * pageSize); //第幾頁
query.setMaxResults(pageSize); //每頁顯示條數(shù)
return query.list();
}
});
}
//此方法執(zhí)行無參分頁前往數(shù)據(jù)庫查詢數(shù)據(jù)
注意:這里的參數(shù)類型前傾加上 final 標示
這里需要參數(shù) pageSize pageNum SQL語句 Object 數(shù)組
protected List selectByPage(final int pageSize, final int pageNum,final String hql, final Object... params) {
return (List)getHibernateTemplate().executeFind(new HibernateCallback() {
public List doInHibernate(org.hibernate.Session session)throws org.hibernate.HibernateException,java.sql.SQLException {
org.hibernate.Query query = session.createQuery(hql);
query.setFirstResult((pageNum - 1) * pageSize); //第幾頁
query.setMaxResults(pageSize); //每頁顯示條數(shù)
return query.list();
}
});
}
接下來就是分頁的重點方法:
注意:這里的參數(shù)類型前傾加上 final 標示
這里需要參數(shù): pageSize pageNum 和一個對象 標示Object類型是標示這里可以傳項目中任意一張表
public List getPageList(final Object entity,final Integer pageSize,final Integer pageNum){
//創(chuàng)建一個Object List集合
ListObject params=new ArrayListObject();
//創(chuàng)建變量標示電泳帶參分頁還是無參分頁
int bool = 0;
//得到action傳過來的對象 注:這里可以是你項目中任何一個對象也就是說可以是任何一張表
Class clas = entity.getClass();
//組建前提SQL語句用StringBuffer 以方便后面邏輯需要好追加條件
//通過 clas的getSimpleName() 得到這個對象的名字
StringBuffer buff = new StringBuffer("from "+clas.getSimpleName()+" where 1=1");
//這里的buff = “from 表名/對象名 where 1=1”
java.lang.reflect.Field[] field = clas.getDeclaredFields();
//循環(huán)這個對象
for (int i = 0; i field.length; i++) {
//field[i].getType().toString() 得到屬性類型 如:java.long.Integer
//field[i].getName() 得到屬性名稱 如:id name
try {
String firstLetter = field[i].getName().substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + field[i].getName().substring(1);
Method method = entity.getClass().getMethod(getter, new Class[] {});
Object value = method.invoke(entity, new Object[] {});
// 這里得到這個屬性對應(yīng)的值 如:id = "1" name = "張三"
if(value!=null!value.equals("")){
//如果這個屬性的值不為空并且不等于null 那么現(xiàn)在就組建SQL語句 并將屬性的值取出來 存到申明好的集合里面去
bool=1;
buff.append(" and "+field[i].getName()+" like ? order by "+field[0].getName());
params.add("%"+value+"%");
}else {
if(bool==0){
bool=0;
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//對吼判斷bool等于0還是1 如果bool=0 我們就調(diào)用寫好的selectByPage 無參分頁方法
if(bool==0){
return selectByPage(pageSize, pageNum, entity, field[0].getName());
}
//對吼判斷bool等于1 我們就調(diào)用寫好的selectByPage() 帶參分頁方法
//這里將組建好的SQL語句傳過去同事也將組建好的集合傳給Object數(shù)組 記得SQL語句一定要.toString() 集合要.toArray()
return selectByPages(pageSize, pageNum, buff.toString(), params.toArray());
}
}
感謝來賓細心閱讀 純屬個人分享 如要轉(zhuǎn)載請 注明原文來源,如有不對的地方請留言或者更正 謝謝
Java(Web)技術(shù)交流①群:20682437 群主 重慶-java-貓貓
原文作者:362440326
模糊查詢?是指數(shù)據(jù)庫吧!
還是要用到數(shù)據(jù)庫的查詢語句的,和編程語句沒多大關(guān)系。比如像sqlserver
select
*
from
table
where
name
like
%li%
然后用jdbc去執(zhí)行這條語句就ok啦
網(wǎng)站題目:java模糊查詢時的代碼 java中模糊查詢語句寫法
當(dāng)前URL:http://m.rwnh.cn/article18/doopodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、企業(yè)建站、、標簽優(yōu)化、移動網(wǎng)站建設(shè)、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)