SSM+PageHelper 使用

项目中使用了maven

  1 引入jar包

  首先需要引入PageHelper的jar包。 

  如果使用了maven,那么只要在pom.xml中引入该插件即可,引入如下:

  <dependency>  

     <groupId>com.github.pagehelper</groupId>

     <artifactId>pagehelper</artifactId>

     <version>4.1.4</version>

   </dependency>
一定要注意:版本号不能太低,最开始用3点几的时候,报500的错误,不能正确分页。
2.  在sqlMapConfig.xml中配置:
 
  1. <!-- 配置分页插件 -->  
  2. <plugins>  
  3.     <plugin interceptor="com.github.pagehelper.PageHelper">  
  4.         <!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库-->          
  5.         <property name="dialect" value="mysql"/>  
  6.            <!-- 该参数默认为false -->    
  7.            <!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->    
  8.            <!-- 和startPage中的pageNum效果一样-->    
  9.            <property name="offsetAsPageNum" value="true"/>    
  10.            <!-- 该参数默认为false -->   
  11.            <!-- 设置为true时,使用RowBounds分页会进行count查询 -->    
  12.            <property name="rowBoundsWithCount" value="true"/>    
  13.            <!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->    
  14.            <!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->    
  15.            <!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->    
  16.            <property name="reasonable" value="true"/>    
  17.            <!-- 支持通过Mapper接口参数来传递分页参数 -->    
  18.            <property name="supportMethodsArguments" value="true"/>    
  19.            <!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->    
  20.            <property name="returnPageInfo" value="check"/>    
  21.     </plugin>  
  22. </plugins>  
3 serviceImpl 中接收从mapper.xml中查到的结果,运用pagehelper分页
example:   

         public TbResult getArticleByType(String type,int pageNumber, int pageSize) {
                       TbArticleExample example = new TbArticleExample(); 
                       Criteria criteria = example.createCriteria();
                       criteria.andTypeEqualTo(type);
                       PageHelper.startPage(pageNumber, pageSize);
                       List<TbArticle> art = articleMapper.selectByExampleWithBLOBs(example);
                       PageInfo<TbArticle> pageInfo = new PageInfo<>(art);
                       TbResult result =new TbResult();
                       result.setRows(art);
                       result.setTotal(pageInfo.getTotal());
                       return result;
         }

         可以看出 PageHelper.startPage(pageNumber, pageSize);是在执行sql前出现, PageInfo 其实是已经分完的结果,我这里是把结果又分装到了一个TbResult类中,后来发现不需要这么写。pageInfo.getList()就是art ,所以其实直接返回pageInfo就行。

4  在Controller层接收结果就可以了

posted @ 2018-02-24 10:10  12344321hh  阅读(515)  评论(0编辑  收藏  举报