HQL參數綁定是幾種?有什麽不同?
阿新 • • 發佈:2017-05-15
setprop 對象 使用 動態設置 tty prop 實例 pre 命名
(1)占位符”?”
通過Query對象,使用“?”占位符,我們可以先設定查詢參數,之後通過setType()方法設置指定的參數
需要註意的是,必須保證每個占位符都設置了參數值,而且必須依照“?”所設定順序,使用對應參數類型的setType()方法設定。設置參數值時,下標從0開始,而不是使用PreparedStatment對象時的從1開始
(2)命名參數
例子:
“select user.password from User as user where user.name= :name”;
Query query = session.createQuery(hql);
query.setString(“name”,”admin”);
解釋:
:name即命名參數,通過session.createQuery方法構造Query實例後,我們即可根據此參數進行參數值設定,設定方式與”?”占位符相同,只是下標換成了命名參數,從而不需要依照特定的順序。
註意,“:”後面跟著參數名。
(3)封裝參數
在查詢條件很多的情況下,如果認為傳遞很多的參數不方便的話,Hibernate還提供了第三種方式,實現了動態設置查詢參數,那就是將參數封裝為一個bean,然後通過Query對象的setProperties(Object bean)實現參數設定
HQL參數綁定是幾種?有什麽不同?