`

两种为hql设置参数的万能方法

阅读更多

 

----------------------------------------------------两种为hql设置参数的万能方法---------------------------------------------------------------------

1.        ?占位符方式

2.  publicListgetList(String hql, String[] params) {

3.       Session session = getSession();

4.       Queryquery= null;

5.       try{

6.           

7.           query= session.createQuery(hql);

8.           if(params!=null)

9.           {

10.              for(inti=0;i<params.length;i++) {

11.                  query.setString(i, params[i]);

12.              }

13.          }

14.          Listlist=query.list();

15.          if(list!=null&&list.size()!=0){

16.            

17.              returnlist;

18.          

19.          }

20.          

21.      } catch(Exception e) {

22.          e.printStackTrace();

23.          return null;

24.      } finally{

25.          try{

26.              if(session != null&& session.isOpen()) {

27.                  closeSession();

28.              }

29.          } catch(Exception e) {

30.              e.printStackTrace();

31.          }

32.      }

33.       return null;

34.     }

 二.:参数名方式

 publicListqueryList(String strHql, String[] paraName, Object[] paraValue, intpageNum, intnumPerPage)

    {

    

        Session session = null;

        Transaction tx = null;

        ListretList = null;

        try{

            session = getSession();

            tx = session.beginTransaction();

            Query q = session.createQuery(strHql);

            if(paraValue.length>0 && paraValue.length== paraName.length)

            {

                for(inti=0; i<paraValue.length; i++)

                {

                    if(strHql.indexOf(":"+ paraName[i]) != -1)

                    q.setParameter(paraName[i], paraValue[i]);

                }

            }

            if(pageNum != 0 && numPerPage != 0) {

                q.setFirstResult((pageNum - 1) * numPerPage);

                q.setMaxResults(numPerPage);

            }

            if(q.list() != null&& q.list().size() != 0) {

                retList = q.list();

            }

            tx.commit();

            q = null;

        } 

        catch(HibernateException e) 

        {

            try{

                tx.rollback();

            } catch(HibernateException e1) {

                e1.printStackTrace();

            }

            e.printStackTrace();

        }

        finally

        {

            try{

                   closeSession();

            } catch(HibernateException e) {

                e.printStackTrace();

                logger.error("Close sf session failed ....by message "+ e.getMessage());

            }

            tx = null;

            session = null;

        }

        

        returnretList;

    }

 

 
分享到:
评论

相关推荐

    Spring中hql语句的常用方法

    2. **findByNamedParam(String queryString, String[] paramName, Object[] value)**:此方法接受一个包含多个命名参数的HQL字符串及对应的参数名数组和值数组作为参数,返回符合条件的结果列表。 - 示例代码: ``...

    Hibernate框架]Hql语句in中带参数的写法

    在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的写法,以及解决相关问题的方法。 一、HQL语句in中带参数的写法 在HQL语句中,使用in关键字可以实现集合参数的传递,例如: ```java String hql = "FROM ...

    hql语言中的一些常用的方法

    HQL(Hibernate Query Language)是Hibernate框架提供的一种查询语言,它基于SQL标准,但更加强调面向对象的特点。在实际应用开发中,HQL被广泛用于数据检索、更新等操作。下面将详细介绍HQL语言中的一些常用的方法...

    Spring中常用的hql查询方法

    这两种方式都将返回`name`属性值为“test”或包含“test”的`User`对象列表。 #### 三、find(String queryString, Object[] values) 此方法用于执行更复杂的多参数查询。可以通过数组传递多个参数值到HQL语句中。 ...

    HQL语法入门学习HQL语法入门学习

    4. **设置参数**: 如果HQL中有参数,可以通过`setXxx`方法(如`setString`, `setDate`等)为参数赋值。 5. **执行查询**: 调用Query对象的`list`方法执行查询,获取查询结果列表。 6. **遍历结果**: 使用迭代器...

    Hibernate HQL命名参数和Query接口的分页

    `setFirstResult(int firstResult)` 方法用来设置从哪一条记录开始获取,其参数值为起始索引,注意索引是从0开始的。而`setMaxResults(int maxResults)` 方法则用于设置一次最多获取多少条记录。例如,如果我们想...

    HQL参数查询和Criteria查询

    1、掌握Hibernate框架应用项目 2、学习HQL参数查询和Criteria查询 3、比较HQL和Criteria的不同 建立web项目,通过页面查询构造动态查询语句,struts2和hibernate框架整合。

    hibernate-hql 资料大全

    1. **find(String queryString)**: 这是最基础的HQL查询方法,接受一个HQL语句作为参数,返回所有匹配该查询的实体对象。例如,"from bean.User"会返回所有的User对象。 2. **find(String queryString, Object ...

    HQL语句 HQL语句

    HQL语句 HQL语句 HQL语句 HQL语句 HQL语句

    hql分页

    Hibernate的分页实现主要在`org.hibernate.query.Query`类中,`setFirstResult()`和`setMaxResults()`方法最终会转化为对应的SQL语句。对于不同的数据库,Hibernate会生成适配的分页SQL。例如,对于MySQL,会生成...

    hql ppt Hql PPt

    Hql PPt Hql PPt

    hql语句 使用大全

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. 查询所有记录(Select) ...

    hibernate hql各类查询范例

    在第一个示例中,我们看到一个名为 `findPerson` 的方法,该方法执行了一个 HQL 查询来查找满足特定条件的人。这里的 HQL 语句为: ```java "from syidt.modules.grp.basegrp.persistence.Person as person where ...

    强烈建议的HQL语法规则详解

    4. **设置参数**:如果HQL中包含参数,如上面的例子中的`:eventTitle`,可以通过`Query`对象的`setXxx`方法(如`setString`)为它们赋值。 5. **执行查询并处理结果**:最后,调用`Query`对象的方法(如`list`)执行...

    HQL语法大全,并带有详细的例子

    4. **设置参数**:如果HQL语句中含有参数,则需要通过Query对象的`setXxx`方法为这些参数赋值。 5. **执行查询并遍历结果**:最后调用Query对象的`list`方法或其他相关方法来执行查询并遍历查询结果。 #### 三、HQL...

    HQL 语法总结 实体查询

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种类似于SQL但更接近于面向对象的方式来编写查询。本文将详细介绍HQL中的实体查询,并提供一些实际应用场景。 ##### 示例:TUser 类 ...

    HQL查询及语法

    4. **设置参数**:如果HQL语句中包含参数,需调用Query对象的`setXxx`方法为其赋值。 5. **执行查询并处理结果**:最后,通过调用Query对象的`list`等方法,获取查询结果并进行后续处理。 #### 三、HQL语法示例...

    hql总条数.txt

    1. **参数解释**:`@param hql`注释表示此方法接收一个名为`hql`的参数,该参数是HQL查询语句。 2. **HQL查询执行**:在方法体内部,首先通过`HibernateUtil.getSession()`获取到一个`Session`实例,这是Hibernate...

    HQL Eclipse Plugins 配置教程

    不喜欢使用myEclipse的朋友可以尝试下 最近在项目中使用Hibernate,由于需要使用HQL,找了很多资料,大都是MyEclipse中自带的HQL工具。...工具很好用,可以识别出HQL文的语法正确,并且解析为标准SQL语句。

Global site tag (gtag.js) - Google Analytics