Hibernate中query的常用方法

来源:互联网 发布:mac版cad破解安装教程 编辑:程序博客网 时间:2024/04/29 20:37
/** 
* 添加 
*/ 
public void save(Stu stu){ 
   try { 
    tran=this.GetSession().beginTransaction(); 
    this.GetSession().save(stu); 
    tran.commit(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 


/** 
* 使用HQL全查询 
*/ 
public List getallbyHQL(){ 
   List arr=null; 
   try { 
    String hql="from Stu"; 
    Query query=this.GetSession().createQuery(hql); 
    arr=query.list(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return arr; 

   /** 
* 根据主键查询 
*/ 
public Stu getbyID(int id){ 
   Stu stu=null; 
   try { 
    stu=(Stu) this.GetSession().get(Stu.class, id); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return stu; 


/** 
* 根据对象属性查询(使用Query) 
*/ 
public List getbyPropertyQuery(String name){ 
   List arr=null; 
   try { 
    //这里不能像SQL语一样select * from Stu where SName=:name,这是不对的。 
//    Query query=this.GetSession().createQuery("from Stu where SName=:name"); 
//    query.setString("name", name); 
    //或者 
    Query query=this.GetSession().createQuery("from Stu where SName=?"); 
    query.setString(0, name); 
    arr=query.list(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return arr; 


/** 
* 根据对象属性查询(使用Criteria) 
*/ 
public List getbyPropertyCriteria(String name){ 
   List arr=null; 
   try { 
    Criteria cri=this.GetSession().createCriteria(Stu.class); 
    Criterion c1=Expression.eq("SName", name); 
    cri.add(c1); 
    arr=cri.list(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return arr; 


/** 
* 查询部分属性 
*/ 
public List getProperty(){ 
   List arr=new ArrayList(); 
   try { 
    String hql="select s.SName,s.SSex from Stu as s"; 
    Query query=this.GetSession().createQuery(hql); 
    List list=query.list(); 
    Iterator iter=list.iterator(); 
    while(iter.hasNext()){ 
     Object[] obj=(Object[]) iter.next(); 
     Stu s=new Stu(); 
     s.setSName(obj[0].toString()); 
     s.setSSex(obj[1].toString()); 
     arr.add(s); 
    } 
   } catch (HibernateException e) { 
    this.CloseSession(); 
   } 
   return arr; 

/** 
* 查询一个属性 
*/ 
public List getoneProperty(){ 
   List arr=new ArrayList(); 
   try { 
    String hql="select s.SName from Stu as s"; 
    Query query=this.GetSession().createQuery(hql); 
    Iterator iter=query.iterate(); 
    while(iter.hasNext()){ 
     Object obj=(Object) iter.next(); 
     Stu s=new Stu(); 
     s.setSName(obj.toString()); 
     arr.add(s); 
    } 
   } catch (HibernateException e) { 
    this.CloseSession(); 
   } 
   return arr; 


/** 
*查询一个对象一个属性值 
*/ 
public Object getonlyProprotyValue(int s_id){ 
   Object obj=null; 
   try { 
    String hql="select s.SName from Stu as s where s.SId=?"; 
    Query query=this.GetSession().createQuery(hql); 
    query.setInteger(0, s_id); 
    obj=query.uniqueResult(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return obj; 

/** 
* SQL查询 
*/ 
public List getallBYSQL(){ 
   List arr=null; 
   try { 
    String sql="select {c.*} from stu as c"; 
    SQLQuery sqlquery=this.GetSession().createSQLQuery(sql); 
    sqlquery.addEntity("c",Stu.class); 
    arr=sqlquery.list(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return arr; 


/** 
* 根据对象查询 
*/ 
public List getallByObject(Stu s){ 
   List arr=null; 
   try { 
    String hql="from Stu as s where s=:stuentity"; 
    //或者 
    //String hql="from Stu as s where s.SId=:stuentity"; 
    Query query=this.GetSession().createQuery(hql); 
    query.setEntity("stuentity", s); 
    arr=query.list(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   }  
   return arr; 


/** 
* 模糊查询 
*/ 
public List getallQueryLike(String name){ 
   List arr=null; 
   try { 
    String hql="from Stu as s where s.SName like :name"; 
    Query query=this.GetSession().createQuery(hql); 
    query.setString("name", "%"+name+"%"); 
    //不能 
    //query.setString("name", "'%"+name+"%'"); 
    arr=query.list(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return arr; 

   /** 
* 统计函数 
*/ 
public int CountStu(){ 
   int count=0; 
   try { 
    String hql="select count(*) from Stu"; 
    Query query=this.GetSession().createQuery(hql); 
    count=(Integer) query.uniqueResult(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return count; 


   /** 
* 条件统计 
*/ 
public int CountByWhere(String sex){ 
   int count=0; 
   try { 
    Query query=this.GetSession().createQuery("select count(*) from Stu where SSex=:sex"); 
    query.setString("sex", sex); 
    count=(Integer)query.uniqueResult(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return count; 


/** 
* 统计平均值 
*/ 
public float VagAge(){ 
   float vag=0; 
   try { 
    Query query=this.GetSession().createQuery("select avg(SAge) from Stu"); 
    vag=(Float)query.uniqueResult(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return vag; 


/** 
* 求和函数 
*/ 
public int sumage(){ 
   int sum=0; 
   try { 
    Query query=this.GetSession().createQuery("select sum(SAge) from Stu"); 
    sum=(Integer)query.uniqueResult(); 
   } catch (HibernateException e) { 
    throw e; 
   }finally{ 
    this.CloseSession(); 
   } 
   return sum; 
}