多條件查詢時,拼接原生sql語句的方法

2021-09-02 09:33:17 字數 1748 閱讀 8117

**完善:

/** @author: 張齊

* @說明: 根據前台用輸入的查詢條件,得到乙個原生查詢語句

* @param searchcondition 引數陣列

* @return sqlquery 返回的原生sql語句

*/public sqlquery getsqlquery(string searchcondition)

if(searchcondition[1]!=null&&!searchcondition[1].trim().equals(""))else

searchparamlist.add("%"+searchcondition[1]+"%");

}if(searchcondition[2]!=null&&!searchcondition[2].trim().equals(""))else

searchparamlist.add(searchcondition[2]);

}if(searchcondition[3]!=null&&!searchcondition[3].trim().equals(""))else

searchparamlist.add("%"+searchcondition[3]+"%");

} //當開始和結束時間都不為空時

if(searchcondition[4]!=null&&!searchcondition[4].trim().equals("")&&searchcondition[5]!=null&&!searchcondition[5].trim().equals(""))else

******dateformat sdf = new ******dateformat("yyyy-mm-dd");

try catch (parseexception e)

}//當開始時間不空,結束時間為空時,則預設結束時間為當前時間

/*if(searchcondition[4]!=null&&!searchcondition[4].trim().equals("")&&searchcondition[5]==null&&searchcondition[5].trim().equals(""))else

******dateformat sdf = new ******dateformat("yyyy-mm-dd");

try catch (parseexception e)

}*/if(searchcondition[6]!=null&&!searchcondition[6].trim().equals(""))else

searchparamlist.add("%"+searchcondition[6]+"%");

}if(searchcondition[7]!=null&&!searchcondition[7].trim().equals(""))else

searchparamlist.add("%"+searchcondition[7]+"%");

} session session = getsessionfactory().getcurrentsession();

sqlquery sqlquery = session.createsqlquery(sbuf.tostring());

for(int i=0;isqlquery.setparameter(i, searchparamlist.get(i));

return sqlquery;

}1.防止依賴注入

2.當切換資料庫時可以不用改寫後台**。這種寫法是通用寫法,不會因為隨著資料庫的改變而去更換**。

多條件儲存過程 (條件拼接SQL語句)

alter proc sp pagedbyconditions countrycode nvarchar 20 國家編號 cid int,城市的id pageindex int 1,當前要顯示的頁碼 pagesize int 3,每頁要顯示的資料條數 頁大小 totalpages intout 總頁...

SQL語句多條件查詢

sql多條件查詢中如果有and和or,and的優先順序高於or,如果不加括號會先執行and,然後再執行or 資料表 一 查詢時先且查詢,則先and條件查詢,查詢結果與or後面的條件進行或查詢 sql語句 select from ceshi where name a and age 10 or 1查詢...

多條件檢索SQL語句的拼接

需求分析 在使用多條件查詢的時候,比如這樣的乙個圖書查詢頁面 如果使用sql語句 select from book where bookname name and author author and address address 但是,在不知道哪一欄會被輸入進去,where和and 的使用,有點不...