首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-06-28 
两种为hql设置参数的万能方法?----------------------------------------------------两种为hql设置参数的

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

热点排行