HQL語句的動態賦值

2021-09-17 01:38:20 字數 862 閱讀 1997

在jdbc程式設計中,preparedstatement物件為開發提供了方便,他不但可以為動態語句進行賦值,而且可以避免sql的注入式攻擊;此外,由於它使用了sql的快取技術,還可以提高sql語句的執行效率。在hql查詢語句中也提供了類似的方法,其實現方式主要有以下兩種。

此種方式與preparedstatement及其相似,通過query物件的setparamenter()f方法進行賦值,在hql語句中以「?」為引數。例如查詢id為3的user物件,可以使用以下方法。

//hql語句

string hql="from user u where u.id=?";

//建立query物件

query query = session。createquery(hql);

//hql引數賦值

query= query.setparameter(0,3);

//獲取查詢結果集

list=query.list();

此種方式通過query物件的setparameter()方法進行賦值,但是hql1語句中的引數可以自定義,它通過「:」號與自定義引數名組合的方式實現。例如查詢id為3的user物件,可以使用以下方法:

//hql語句

string hql="from user u where u.id=:userid";

//建立query物件

query query = session。createquery(hql);

//hql引數賦值

query= query.setparameter("userid",3);

//獲取查詢結果集

list=query.list();

常用的HQL語句

1.hql更新 string hql update phuser set realname int row this.getsession createquery hql setstring 0,小李想 executeupdate phuser 類名 2.hql刪除 string hql delet...

HQL語句詳解

4.3 使用hql查詢 hibernate提供了異常強大的查詢體系,使用hibernate有多種查詢方式。可以選擇使用hibernate的hql查詢,或者使用條件查詢,甚至可以使用原生的sql查詢語句,此外還提供了一種資料過濾功能,這些都可用於篩選目標資料。下面分別介紹hibernate的4種資料篩...

HQL查詢語句

hql基本查詢 單屬性和多屬性查詢 listlist session.createquery select name,code from province list for int i 0 i將多個查詢分裝成物件 listlist1 session.createquery select new pr...