关闭

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

628人阅读 评论(1) 收藏 举报
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写好之后,就可以在相应的表示层中进行方法调用,达到分页的目的
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4159次
    • 积分:74
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:1篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论