日期:2014-05-20  浏览次数:20715 次

这个方法要怎么调用
protected List find(String hql,List params) {
List list=new ArrayList();
try{
//1、获取Session
session =HibernateSessionFactory.getSession();
//2、拼写hql语句
//3、创建执行语句对象
Query query=session.createQuery(hql);

//传参
if(params!=null && params.size()>0){
for(int i=0;i<params.size();i++){
query.setParameter(i, params.get(i));
}
}

//4、执行并返回结果
list=query.list();

}catch (Exception e) {

System.out.println("根据传入的hql语句,获取查询结果错误:"+e.getMessage());
}finally{
//session.close();
}
return list;
}

------解决方案--------------------
Java code
你这个应该是dao
需要拿到这方法的类的一个实例 

然后 两个参数 :hql 和  params

protected List find(String hql,List params) {


两个参数 :hql 和  params

hql  类似一下写法

String hql = " from " + MyPojo.class.getName() + "  where myProp1 = ? and myProp2= ?" ;
List params = new ArrayList() ;
params.add("第1条件值") ;
params.add("第2条件值") ;


List retList = find(hql, params) ;

返回的List中均为 MyPojo类的对象;
MyPojo.java 如下 :

public class MyPojo{
    private String myProp1 ;
    private String myProp2 ;
    
    public String getMyProp1() {
        return myProp1;
    }

    public void setMyProp1(String myProp1) {
        this.myProp1 = myProp1;
    }

    public String getMyProp2() {
        return myProp2;
    }

    public void setMyProp2(String myProp2) {
        this.myProp2 = myProp2;
    }
}

//根据你的实际pojo传递 ,此处为 示例 ,如有 误导 ,敬请原谅...