在我們傳統的sql語句中,經常給sql語句傳遞引數來實現查詢,但這樣很容易產生sql注入,也就是說,如果使用者在輸入查詢條件的輸入框寫了一些sql語句,將會給我們帶來很大的損失。所以hql中提出了2中傳參方式。
(1)位置引數
string hql = "from emp where name like ? and age< ?";
session session = hibernateutil.getsession();
listlist = session.createquery(hql).setparameter(0, name + "%")
.setparameter(1, age).list();
通過?佔位符來傳遞引數,這樣不好的地方在於也很順序傳遞引數。
(2)命名引數
string hql = "from emp where name like :name and age<:age";
session session = hibernateutil.getsession();
listlist = session.createquery(hql).setparameter("name",
name + "%").setparameter("age", age).list();
這種方式成功解決了位置引數的不足,很完美。
投影的問題:所謂投影就是查詢部分字段,比如:
string hql="select name,age from emp where name like ?";
query query=session.createquery(hql).setparameter(0, "張%");
listlist=query.list();
但是這樣做的返回值是個object陣列,我們都希望返回的是乙個物件,這樣會比較好處理。
要解決這個問題,我們必須採用建構函式來完成。具體**如下:
string hql="select new emp(age,name) from emp where name like ?";
query query=session.createquery(hql).setparameter(0, "張%");
listlist=query.list();
這樣可以成功解決這個問題。
struts中submit標籤傳遞引數問題
align center s submit value 刪除 class searchbutton method deleteauthbyempid type hidden name empauthid value s property value authorization.empid s pro...
關於引數的傳遞
解釋引數在方法中的傳遞過程,並通過記憶體解析圖的 方式,描繪出方法執行時記憶體的變化。可以使用今天課堂 來解釋 public class demo11 public static void main string args 此方法最後的輸出是 fun1 i 15 fun1 j 25 main i 1...
MFC中關於CString 引數傳遞
當定義類介面時,必須確定為成員函式確定引數傳遞約定。現在有一些傳遞和返回 cstring 物件的標準規則。如果遵循作為函式輸入的字串和作為函式輸出的字串中所述的規則,那麼將得到正確而又有效的 作為函式輸入的字串 如果字串是某個函式的輸入,在大多數情況下,最好將該字串函式引數宣告為 lpctstr。在...