13 PageHelpler改ページプラグイン


概要
学習ドキュメント
PageHelpler使用手順
1.改ページプラグインJARを導入する
  • Jarパケットを導入する
  • 最新バージョンのjarパッケージは下記のアドレスからダウンロードできます。https://oss.sonatype.org/content/repositories/releases/com/github/pagehelper/pagehelper/ http://repo1.maven.org/maven2/com/github/pagehelper/pagehelper/ sql解析ツールを使用していますので、jsql parser.jarをダウンロードする必要があります。http://repo1.maven.org/maven2/com/github/jsqlparser/jsqlparser/0.9.5/
  • Maven方式
  • <dependency>
        <groupId>com.github.pagehelpergroupId>
        <artifactId>pagehelperartifactId>
        <version>5.1.6version>
    dependency>
    
    2.スクリーンセーバープラグインの設定
    特に注意してください。新版のスクリーンセーバはcomp.githb.pagehelper.PageInterceptorです。comple.githb.pagehelper.PageHelperは現在、特別なdialect実現クラスであり、改ページプラグインのデフォルト実装クラスであり、以前と同じ使い方を提供しています。
    2.1 MyBatis設定xmlに傍受プラグインを配置する
    
    <plugins>
        
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            
            <property name="param1" value="value1"/>
        plugin>
    plugins>
    
    2.2 Springプロファイルにブロッキングプラグインを設定する
    springの属性構成を使用して、plugins属性を以下のように構成することができます。
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        
        <property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <property name="properties">
                        
                        <value>
                            params=value1
                        value>
                    property>
                bean>
            array>
        property>
    bean>
    
    2.3改ページプラグインのパラメータ紹介
    3.コードの使い方
    改ページプラグインは、以下のいくつかの呼び出し方法をサポートしています。
    //   ,RowBounds     
    List<Country> list = sqlSession.selectList("x.y.selectIf", null, new RowBounds(0, 10));
    
    //   ,Mapper       ,        。
    PageHelper.startPage(1, 10);
    List<Country> list = countryMapper.selectIf(1);
    
    //   ,Mapper       ,        。
    PageHelper.offsetPage(1, 10);
    List<Country> list = countryMapper.selectIf(1);
    
    //   ,      
    //     Mapper     ,      xml        
    public interface CountryMapper {
        List<Country> selectByPageNumSize(
                @Param("user") User user,
                @Param("pageNum") int pageNum,
                @Param("pageSize") int pageSize);
    }
    //  supportMethodsArguments=true
    //        :
    List<Country> list = countryMapper.selectByPageNumSize(user, 1, 10);
    
    //   ,    
    //   pageNum   pageSize     User    ,      ,     
    //    User   
    public class User {
        //  fields
        //         params        
        private Integer pageNum;
        private Integer pageSize;
    }
    //     Mapper     ,      xml        
    public interface CountryMapper {
        List<Country> selectByPageNumSize(User user);
    }
    //  user    pageNum!= null && pageSize!= null  ,     
    List<Country> list = countryMapper.selectByPageNumSize(user);
    
    //   ,ISelect     
    //jdk6,7  ,    
    Page<Country> page = PageHelper.startPage(1, 10).doSelectPage(new ISelect() {
        @Override
        public void doSelect() {
            countryMapper.selectGroupBy();
        }
    });
    //jdk8 lambda  
    Page<Country> page = PageHelper.startPage(1, 10).doSelectPage(()-> countryMapper.selectGroupBy());
    
    //       PageInfo,  doSelectPageInfo   doSelectPage
    pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(new ISelect() {
        @Override
        public void doSelect() {
            countryMapper.selectGroupBy();
        }
    });
    //   lambda  
    pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(() -> countryMapper.selectGroupBy());
    
    //count  ,         count 
    long total = PageHelper.count(new ISelect() {
        @Override
        public void doSelect() {
            countryMapper.selectLike(country);
        }
    });
    //lambda
    total = PageHelper.count(()->countryMapper.selectLike(country));