Hql的引數繫結

2021-07-24 02:34:42 字數 930 閱讀 8428

hibernate中有四種引數繫結的方法:

1、按引數名稱繫結:

string hql="from emp emp where emp.empno=:命名引數名稱";

query q=session.createquery(hql);

q.set命名引數型別("命名引數名稱", 命名引數實際值);

2、按引數位置繫結:

string hql="from emp where empno=?";

query q=session.createquery(hql);

q.set命名引數型別(0, 命名引數實際值);

注:在實際開發中,提倡使用按名稱邦定命名引數,因為這不但可以提供非常好的程式可讀性,而且也提高了程式的易維護性,因為當查詢引數的位置發生改變時,按名稱邦定名引數的方式中是不需要調整程式**的。

3、setparameter()方法:

在hibernate的hql查詢中可以通過setparameter()方法繫結任意型別的引數

string hql="from emp emp where emp.empno=:命名引數名稱";

query q=session.createquery(hql);

q.setparameter("命名引數名稱",命名引數實際值,命名引數對映型別);

4、setproperties()方法

在hibernate中可以使用setproperties()方法,將命名引數與乙個物件的屬性值繫結在一起

customer customer = new  customer();

customer.setempno("命名引數實際值");

query q=session.createquery(from emp emp where emp.empno=:命名引數名稱);

q.setproperties(customer);

hql語句進行引數繫結的兩種方式

使用引數繫結的好處 1.可讀性提高 2.效果高3.防止sql注入漏洞 引數繫結的兩種形式 以查詢年齡小於18歲的學生為例 引數以 冒號形式給出 listlist session.createquery from student where id i and age age setstring i 1...

Hibernate的HQL中in引數設定

平時經常用hibernate,由於習慣表間不建立關聯,所以hql查詢時候經常要用in語句。我最常用的情況有2種 1 in後是個子查詢,如 from a where a.id in select b.aid from b where 這樣是沒問題的,如果a.id 和b.aid是相同的資料型別。2 in...

springmvc的引數繫結

對於前端傳送的資料。我們如何接收呢?在傳統的servlet開發中使用httprequest.getp 方法來獲取,但是在springmvc中,我們將極大簡化這一任務,對於基本型別。我們只需要在請求處理方法中加入引數,與前端輸入的引數一致即可。public string zeze integer id...