`
hlbng
  • 浏览: 177484 次
  • 性别: 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 实践 Query详解

    在这个“hibernate 实践 - Query详解”的主题中,我们将深入理解如何使用Query接口来执行SQL查询,并绑定参数。 1. **Query接口** Query接口是Hibernate提供的一种用于执行HQL(Hibernate查询语言)或SQL查询的API...

    Hibernate SQLQuery 本地查询

    总结来说,"Hibernate SQLQuery 本地查询"这篇博客可能深入介绍了如何在Hibernate中使用SQLQuery执行自定义SQL查询,以及如何通过BaseDaoSupport类来封装这些查询,以提升代码的复用性和项目开发效率。通过对SQL...

    Hibernate中的query 分页.doc

    本文将探讨Hibernate中两种主要的分页方式:`query.scroll()`和使用`query.setFirstResult(), query.setMaxResults()`。 首先,`query.scroll()`方法基于JDBC 2.0的可滚动结果集实现。这种方式允许应用程序在结果...

    Hibernate_query聚合函数查询.

    首先,让我们了解一下Hibernate中的HQL(Hibernate Query Language),它是Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近于Java。在HQL中,我们可以方便地使用聚合函数进行数据处理。例如,如果你想要...

    \Hibernate_query条件查询

    《Hibernate查询条件查询详解》 Hibernate作为Java领域中广受欢迎的对象关系映射(ORM)框架,极大地简化了数据库操作。...在学习和实践中,不断探索和理解Hibernate的查询机制,将使我们在Java开发中游刃有余。

    HIBERNATE_QUERY

    ### HIBERNATE_QUERY知识点详解 #### 一、概述 Hibernate作为一款强大的对象关系映射(ORM)框架,为Java开发者提供了一套高效且简洁的方式来处理数据库操作。它支持多种查询方式,包括面向对象的查询语言(HQL)...

    Hibernate Query Language基础使用详解

    Hibernate Query Language(HQL)是Hibernate官方推荐的查询语言,它是面向对象的,与SQL类似,但更加符合Java编程的思维。HQL使得开发者能够更方便地处理对象关系映射,而无需直接编写SQL语句。在使用HQL时,我们...

    Hibernate_Query查询所有数据

    1. **使用HQL(Hibernate Query Language)** HQL是Hibernate特有的查询语言,类似于SQL,但更面向对象。查询所有数据的HQL语句如下: ```java Session session = sessionFactory.openSession(); Transaction ...

    Hibernate_query查询数据表中的一个字段.

    在使用Hibernate进行查询前,首先需要进行基本的配置,包括创建hibernate.cfg.xml配置文件,设置数据库连接信息,以及实体类和表的映射文件(.hbm.xml)。 三、Entity类与表的映射 在Hibernate中,每一个数据库表都...

    Hibernate-HQL-查询-Query资料

    在Hibernate中,HQL(Hibernate Query Language)是专为ORM设计的一种面向对象的查询语言,它允许开发者以类和对象的方式进行数据查询,而不是直接使用SQL。本资料主要涵盖了Hibernate HQL查询的基本概念、语法以及...

    maven+hibernate

    5. **整合Spring和Hibernate**: 在Spring应用中使用Hibernate,通常会创建一个`SessionFactory`的bean,并使用`LocalSessionFactoryBean`进行配置。然后,通过`PlatformTransactionManager`和`...

    hibernate中文参考文档

    15. 工具箱指南:Hibernate提供了许多工具类和实用方法来简化开发,这部分会介绍这些工具的使用方法。 16. 示例:父子关系:文档中会包含一个关于如何处理父子关系映射的例子,这是对象模型中常见的关系映射挑战。 ...

    HQL(Hibernate Query Language):

    Hibernate Query Language(HQL)是Hibernate框架中用于操作对象关系映射(ORM)的一种查询语言。它是面向对象的,设计目的是让开发人员可以使用对象而不是数据库表进行查询,从而简化了与数据库交互的过程。HQL的...

    Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法

    ### Hibernate SQLQuery 查询Oracle char类型结果为一个字符的解决方法 在使用Hibernate框架结合Oracle数据库进行数据查询时,经常会遇到一个问题:当查询的结果集中包含char类型的字段时,Hibernate可能会将其映射...

    Hibernate中Criteria的用法

    在上面的代码中,我们首先创建了一个 HQL 查询字符串,然后使用 `createQuery()` 方法创建了一个 Query 对象,最后使用 `list()` 方法来获取查询结果。 Restrictions Restrictions 是 Hibernate 中的一个类,它...

    Hibernate_query查询数据表中部分字段.

    以上就是使用Hibernate查询数据表中部分字段的方法。在实际应用中,根据项目需求和性能考虑,可以选择合适的方式进行查询。同时,要注意优化查询,避免全表扫描,减少对数据库的压力。学习和熟练掌握这些技术,将有...

    Hibernate SQLQuery执行原生SQL.docx

    在Java的Hibernate框架中,有时候我们需要执行自定义的SQL查询以获取特定的数据,这时就可以使用SQLQuery接口。本文将深入探讨Hibernate如何通过SQLQuery接口执行原生SQL查询,并展示如何处理查询结果。 一、创建...

    Hibernate Tutorial 09 Hibernate Query Language

    本文将深入探讨 HQL 的基本概念、语法以及一些高级用法,帮助读者更好地理解如何在实际开发中应用 HQL。 ## 二、HQL 的特点与优势 ### 2.1 数据库独立性 HQL 是一种与数据库无关的语言,这意味着开发者可以在编写...

    hibernate基本jar包

    4. **javassist.jar**:Hibernate使用javassist库来动态地生成字节码,以实现运行时的类增强,例如为实体类添加代理方法。 5. **jta.jar**或**jboss-transaction-api_1.2_spec.jar**:提供Java Transaction API,...

    Hibernate 中文api 等学习资料

    3. **Hibernate 中文API文档.chm**:这是Hibernate的中文API参考手册,对每个类、接口和方法的详细说明,对于查阅具体功能和方法的使用非常有帮助。 4. **Hibernate3.2.chm**:这个文件可能包含了Hibernate 3.2版本...

Global site tag (gtag.js) - Google Analytics