`
昔雪似花
  • 浏览: 204206 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate中query的常用方法

阅读更多
/**
* 添加
*/
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;
}
分享到:
评论

相关推荐

    hibernate常用方法集合

    让我们详细了解一下`HibernateSessionFactory`类中的关键方法和其背后的原理。 1. **配置和初始化SessionFactory** `HibernateSessionFactory`类通过`cfg.configure(CONFIG_FILE_LOCATION)`来读取配置文件(默认为...

    hibernate中文参考文档

    6. 集合类映射:在Java中集合是常用的,Hibernate支持集合类的映射,这部分将解释如何映射List、Set、Map等集合类型。 7. 组件映射:当一个类的属性是由其他几个类的属性组合而成时,可以使用组件映射。这部分内容...

    hibernate的jar包

    描述中提到"用的挺久了,挺全面的",暗示这个jar包可能包含了Hibernate的核心组件以及一些常用的扩展,比如支持DOM4J库,这是一个用于XML处理的Java库,常在Hibernate中用于读写XML配置文件。另外,还提及了"orcle...

    hibernate常用的模板方法

    Hibernate 模板方法是 Hibernate 框架中用于简化数据访问操作的重要工具,它提供了一系列预定义的方法,方便开发者在实际的软件开发中执行常见的数据库查询和操作。这些方法主要集中在 `HibernateTemplate` 类中,...

    Hibernate 参数查询通用方法

    在Dao层实现通用方法时,我们可以抽象出一个基类,包含一些常用的方法,如`queryByParams`,这个方法接受一个Map参数,键对应于HQL或Criteria查询中的参数名,值则是参数的实际值。这样,不同的查询只需要传入不同的...

    hibernate 常用核心包

    "hibernate 常用核心包"包含了 Hibernate 框架中必要的组件,使得开发者可以进行基本的数据库操作和应用程序开发。 在 Hibernate 中,以下几个核心包是至关重要的: 1. **hibernate-core**: 这是 Hibernate 的核心...

    Hibernate方法总结

    这两个方法都用于执行HQL(Hibernate Query Language)查询。`find`返回一个List集合,一次性将所有结果加载到内存,适合于小规模数据的查询。而`iterate`返回一个迭代器,每次调用`next()`方法时才从数据库中获取一...

    hibernate_reference中文版和Hibernate中文手册

    5. CRUD操作:Hibernate提供了便捷的方法来完成创建(save()、persist())、读取(get()、load()、query())、更新(update()、merge())和删除(delete())对象的操作。其中,HQL(Hibernate Query Language)和...

    Hibernate的Template方法以及SQL简介

    以上内容涵盖了`HibernateTemplate`的主要方法以及Hibernate中的SQL查询技术,这些技术可以帮助开发者更高效地进行数据库操作,同时也能更好地理解Hibernate的工作原理。对于实际开发来说,合理选择合适的方法对于...

    hibernate里面常用jar包

    在Hibernate中,ANTLR主要用于解析HQL(Hibernate Query Language)和SQL语句,生成相应的抽象语法树,从而实现对数据库的动态查询。HQL是Hibernate提供的面向对象的查询语言,与SQL类似但更贴近Java对象,使得...

    Hibernate常用jar包集合

    以下是对标题、描述中提到的Hibernate常用jar包的详细解释: 1. **antlr-2.7.6**: ANTLR(ANother Tool for Language Recognition)是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件。...

    Hibernate官方中文参考手册下载

    在Hibernate中,每个Java类都可以映射为数据库中的一个表,通过注解或者XML文件进行配置。注解如@Entity、@Table、@Id等用于声明实体类和字段的数据库属性。XML文件通常命名为 "*.hbm.xml",包含类到表的映射信息。 ...

    hibernate中五个核心接口

    Session 接口是 Hibernate 中最常用的一个接口,它是执行 CRUD(Create、Read、Update、Delete)操作的主要工具。Session 提供了多种操作数据库的方法,包括保存对象、查询对象、更新对象以及删除对象等。 **特点:...

    Hibernate常用包及XML

    本主题将详细探讨Hibernate中的常用包及其对应的XML配置,帮助你深入理解Hibernate的工作原理。 1. **org.hibernate**:这是Hibernate的核心包,包含了所有基本的API和接口,如SessionFactory、Session、Query等。...

    hibernate 常用jar 包

    下面我们将详细探讨Hibernate常用JAR包及其作用。 1. **hibernate-core.jar**:这是Hibernate的核心库,包含了主要的ORM功能,包括实体管理、持久化操作、事务管理和查询服务。它提供了对Hibernate Session和...

    hibernate连接各种数据库的方法

    ### 使用Hibernate连接各种数据库的方法 #### 一、前言 Hibernate是Java开发中非常流行的ORM(对象关系映射)框架之一,它简化了数据库操作,让开发者能够更加专注于业务逻辑而不是复杂的SQL语句编写。本文将详细...

    Hibernate实例代码,含常用方法

    本资源是关于Hibernate框架的实例代码集合,涵盖了其常用的方法,旨在帮助开发者快速理解和应用Hibernate到实际项目中。Hibernate是一个强大的Java持久化框架,它简化了数据库操作,使得开发人员可以更加专注于业务...

    通用的hibernate查询

    在Hibernate中,查询数据主要通过Criteria、HQL(Hibernate Query Language)和Query API三种方式。首先,让我们来看看Criteria查询。Criteria API提供了一种类型安全的方式,通过构建查询条件来执行数据库查询。...

    hibernate基础jar包

    7. HQL和Criteria API:Hibernate Query Language(HQL)是Hibernate特有的面向对象的查询语言,类似于SQL,但操作的是对象而非表格。Criteria API是一种类型安全的API,可以动态构建查询,避免SQL注入风险。 8. ...

    hibernate3.5.5常用jar包搜集

    这个压缩包“hibernate3.5.5常用jar包搜集”包含了用于使用Hibernate 3.5.5版本进行开发所需的库文件。 在Hibernate 3.5.5中,主要的jar包包括以下几类: 1. **Hibernate Core**:这是Hibernate的核心库,包含ORM...

Global site tag (gtag.js) - Google Analytics