大家知道在SQL中進行傳遞參數,進行查詢的時候,我們通常用PreparedStatement,在語句中寫一大堆的“?”,在HQL中也可以這樣用,如:
List mates=sess.find(
“select employee.name from Employee as employee”+
“where employee.Name=?”
name,
Hibernate.STRING
);
說明:上面利用Session里的find方法,在hibernate的api Session中得載了很多find方法,它可以滿足你多種形式的查詢。
上面的是一個參數的情形,這種情況下緊接著引入參數和定義參數的類型,當為多個參數,調用另一個find 方法,它的后兩個參數都是數組的形式。
還有另外一種方法來解決上邊的問題,JDO也有這樣的方法,不過和hibernate的表現形式上有差別,但他們兩個骨子里卻是一樣的,如:
Query q =sess.createQuery(“select employee.name from Employee as employee where employee.Name =:name”);
q.setString(“name”,”Jplateau”);
//當有多個參數的時候在此逐一定義
Iterator employees = q.iterate();