您的位置:首页 > 编程语言 > Java开发

hibernate+spring的一个简单分页实现

2007-10-03 10:59 573 查看
Spring DAO的编写:
利用hibernate提供的Query的setFirstResult和setMaxResults方法进行数据分页,程序中以我建立的用户表为例,query的分页机制是以跳指针的方式进行数据读取,这样极大的提高的数据分页程序的响应速度
//分页主程序
       public List getUsersPage(int firstResults,int maxResults){
              try {
                     Session session=this.getSession();
                     Query query=session.createQuery("from SYSUSERS sysusers order by sysusers.username asc");
                     query.setFirstResult(firstResults);
                     query.setMaxResults(maxResults);
                     return query.list();
              } catch (HibernateException e) {
                     // TODO 自动生成 catch 块
                     e.printStackTrace();
              }
              finally{
                     try {
                            session.close();
                     } catch (HibernateException e) {
                            // TODO 自动生成 catch 块
                            e.printStackTrace();
                     }
              }
              return null;
       }
       //显示分页总页数
       public String getPageCount(int maxResults){
              String pageCount="0";
              try {
                     session=this.getSession();
                     Query query=session.createQuery("select count(sysusers.id) from SYSUSERS sysusers");
                     int Count=((Integer)query.list().get(0)).intValue();
                     if(Count%maxResults>0){
                            pageCount=String.valueOf(Count/maxResults+1);
                     }
                     else{
                            pageCount=String.valueOf(Count/maxResults);
                     }
                     return String.valueOf(pageCount);
              } catch (HibernateException e) {
                     // TODO 自动生成 catch 块
                     e.printStackTrace();
              }
              finally{
                     try {
                            session.close();
                     } catch (HibernateException e) {
                            // TODO 自动生成 catch 块
                            e.printStackTrace();
                     }
              }
              return pageCount;
       }
       //显示总记录数
       public String getTotalMark(){
              String totalMark="0";
              try {
                     session=this.getSession();
                     Query query=session.createQuery("select count(sysusers.id) from SYSUSERS sysusers");
                     int Count=((Integer)query.list().get(0)).intValue();
                     totalMark=String.valueOf(Count);
                     return totalMark;
              } catch (HibernateException e) {
                     // TODO 自动生成 catch 块
                     e.printStackTrace();
              }
              finally{
                     try {
                            session.close();
                     } catch (HibernateException e) {
                            // TODO 自动生成 catch 块
                            e.printStackTrace();
                     }
              }
              return totalMark;
       }
 
写完spring的dao之后定义相应的接口,这里不在复述
在这个dao写好之后,就可以在相应的表示层中进行方法调用,达到分页的目的 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息