Mybatis的pagehelper分页配置及使用
当数据量较大时,前端页面查询显示就需要用到分页,一般我们都会使用Mysql的Limit,不过使用起来还是有成本的,这里就说一下pagehelper插件如何使用
1、导入依赖
<!--mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.4</version>
</dependency>
也可以在pagehelper.jar. 这个链接里下载最新的jar包
2、添加配置
在配置文件中添加配置,默认名称是.properties,我这里配置文件叫做spring-config.xml
<!-- 2:配置SqlSessionFactory对象, 作用:生成预编译SQL-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 扫描sql配置文件 -->
<property name="mapperLocations" value="classpath:mappers/*.xml"/>
<!--分页相关配置-->
<property name="typeAliasesPackage" value="com.vehicleDetection.entity"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
<!--dialect=mysql-->
reasonable=true
</value>
</property>
</bean>
</array>
</property>
</bean>
3、在业务中使用
使用的时候,只需要在Controller控制层和Service、ServiceImpl里实现,参数为page和rows。
下面是我在代码中的实现,可以参考一下:
Controller
Service层
ServiceImpl
说明:
1、page:当前第几页 。 rows:每页多少条数据
2、PageHelper分页和Mapper.xml完全解耦,实现方式是以插件的形式,对Mybatis执行的流程进行了强化,添加了总数count和limit查询。属于物理分页。
3、Page page = PageHelper.startPage(pageNum, pageSize, true); - true表示需要统计总数,这样会多进行一次请求select count(0); 省略掉true参数只返回分页数据。
看图猜人物(七),欢迎评论