我们加入到项目中的方式跟场景有很多,下面介绍主要的几种方式 :
首先,我们肯定要引入 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; }
萝卜白菜,总有你所爱。