zoukankan      html  css  js  c++  java
  • 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层接收结果就可以了

  • 相关阅读:
    iOS书写高质量代码之耦合的处理
    下载历史版本App超详细教程
    iOS-申请邓白氏编码的超详细流程介绍
    AFNetworking之于https认证
    iOS时间问题
    AFNetworking到底做了什么?(二)
    AFNetworking到底做了什么
    iOS7中的ViewController切换
    iOS 视图控制器转场详解
    关于如何写UI及屏幕适配的一些技巧
  • 原文地址:https://www.cnblogs.com/12344321hh/p/8464278.html
Copyright © 2011-2022 走看看