hibernate与spring整合后通用分页查询方法

来源:互联网 发布:最好的javascript视频 编辑:程序博客网 时间:2024/06/06 04:25

         *

         *@version1.0

         *@authoriam00@qq.com

         * @create Jan 28, 2010

         * @since java 1.6

         *@paramhql

         *           查询要用的hql语句

         *@parampageNo

         *           第几页

         *@parammaxRow

         *           每页的最大行数

         *@paramargs

         *           hql语句中占位符的实际值

         *

   //通过给定的参数分页查询数据,其中templateorg.springframework.orm.hibernate3.HibernateTemplate

@SuppressWarnings("unchecked")

   publicList getPageList(finalString hql,finalInteger pageNo,

           finalInteger maxRow,finalObject[] args) {

       //这个方法返回结果是个Object,强转为需要类型

       return(List) template.execute(newHibernateCallback() {

           publicObject doInHibernate(Session session)

                   throwsHibernateException, SQLException {

               //创建一个query并设置分页的参数

                Query query = session.createQuery(hql).setFirstResult(

                        (pageNo - 1) * maxRow).setMaxResults(maxRow);

               

               //hql语句中没有使用占位符,直接返回查询结果

               //hql语句中使用了占位符,将这些参数逐个放入hql中,并返回查询结果

               if(args !=null)

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

                     query.setParameter(i, args[i]);

               returnquery.list();

            }

        });

    }