两种为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;

    }

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值