大家知道在SQL中進行傳遞參數(shù),進行查詢的時候,我們通常用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方法,它可以滿足你多種形式的查詢。
上面的是一個參數(shù)的情形,這種情況下緊接著引入?yún)?shù)和定義參數(shù)的類型,當(dāng)為多個參數(shù),調(diào)用另一個find 方法,它的后兩個參數(shù)都是數(shù)組的形式。
還有另外一種方法來解決上邊的問題,JDO也有這樣的方法,不過和hibernate的表現(xiàn)形式上有差別,但他們兩個骨子里卻是一樣的,如:
Query q =sess.createQuery(“select employee.name from Employee as employee where employee.Name =:name”);
q.setString(“name”,”Jplateau”);
//當(dāng)有多個參數(shù)的時候在此逐一定義
Iterator employees = q.iterate();