我們加入到項目中的方式跟場景有很多,下面介紹主要的幾種方式 :
首先,我們肯定要引入 pom 包依賴的 :
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>最新版本</version> </dependency>
《特別注意,新版攔截器是 com.github.pagehelper.PageInterceptor
。 com.github.pagehelper.PageHelper
現在是一個特殊的 dialect
實現類,是分頁插件的默認實現類,提供了和以前相同的用法。》
1. 如果我們使用了 Mybatis.xml 的話,可以在如下位置加上 :
<!-- plugins在配置文件中的位置必須符合要求,否則會報錯,順序如下: properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers? --> <plugins> <!-- com.github.pagehelper為PageHelper類所在包名 --> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 使用下面的方式配置參數,后面會有所有的參數介紹 --> <property name="param1" value="value1"/> </plugin> </plugins>
2. 在 spring 配置文件當中增加當中增加
<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>
3. 在springboot 當中增加
注意到這個增加我們可以在配置類當中加入一個 Bean 就行
//配置mybatis的分頁插件pageHelper @Bean public PageHelper pageHelper(){ System.out.println("開始配置數據分頁插件"); PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); properties.setProperty("pageSizeZero","true"); // 我任然想查詢出所有參數 properties.setProperty("offsetAsPageNum","true"); properties.setProperty("rowBoundsWithCount","true"); properties.setProperty("reasonable","true"); //配置mysql數據庫的方言 properties.setProperty("dialect","mysql"); pageHelper.setProperties(properties); return pageHelper; }
也可以在我們全局設置 sqlSessionFactory的時候配置進去,當然我提倡前面個做法
// 指定 分頁插件 plugin // factoryBean.setPlugins(getMybatisPlugins()); return factoryBean.getObject(); } private static Interceptor[] getMybatisPlugins() { Interceptor[] ins = new Interceptor[1]; PageInterceptor pageInceptor = new PageInterceptor(); // 分頁插件 PageHelper pageHelper = new PageHelper(); Properties properties = new Properties(); /* properties.setProperty("helperDialect", "mysql"); // mysql 類型 properties.setProperty("reasonable", "true"); properties.setProperty("supportMethodsArguments", "true"); properties.setProperty("returnPageInfo", "check");*/ properties.setProperty("pageSizeZero","true"); // 我任然想查詢出所有參數 properties.setProperty("rowBoundsWithCount","true"); // properties.setProperty("params", "count=countSql"); // ??? pageHelper.setProperties(properties); ins[0] = pageInceptor; return ins; }
蘿卜白菜,總有你所愛。