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

来源:互联网 发布:python正则匹配ip地址 编辑:程序博客网 时间:2024/05/20 13:14
----------------------------------------------------两种为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;        }       

原创粉丝点击