分享

Hibernate中query的常用方法

 myfortune0937 2014-05-05
/**
* 添加
*/
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;
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约