MybatisPlus真假分页----分页插件
程序员文章站
2022-07-13 09:13:29
...
SSM整合mybatisPlus: link
假分页:
mybatisPlus里有一个page对象,通过内存实现的。观察sql可以发现不是用limit实现的。
真分页:
mybatisPlus在spring核心配置文件中注册分页插件,是使用limit实现的。
实现假分页:
前面的代码直接拿之前写的SSM整合mybatisPlus进。链接
在EmpController.java中添加一个方法:
/**
* 分页:第一页,每页显示三条数据,注意(没有注册分页插件的就是假分页,是使用内存实现的,不建议使用)
* 查询部门编号为30的员工信息
* new Page()对象可以得到一个page对象,里面有分页的各种信息和查询出来的数据信息,通过page.getRecords()获取。
* Condition.create()是添加条件,eq(column,params) 等于,参数左边是条件的列,右边是值。
*
* @return
*/
@RequestMapping("/findPageEmpList")
public ModelAndView findPageEmpList(){
Page page = empService.selectPage(new Page<Emp>(1, 3), Condition.create().eq("deptno", 30));
ModelAndView modelAndView = new ModelAndView();
List<Emp> empList = page.getRecords();
modelAndView.addObject("empList",empList);
modelAndView.setViewName("emplist");
return modelAndView;
}
测试前查看数据库完整数据:
页面效果:部门为30的雇员有四条数据,显示三条,分页成功!
控制台输出:
确实没有limit,而且成功实现了分页。
插件分页:只需要在假分页的基础上注册分页插件,就是真分页了。
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
">
<!--文件引入-->
<context:property-placeholder location="classpath:db/db.properties"></context:property-placeholder>
<!--数据源-->
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" id="dataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--SqlSessionFactoryBean-->
<bean class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean" id="sqlSessionFactory">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.ssm.entity"/>
<property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
<!--分页插件-->
<property name="plugins">
<list>
<bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor" id="paginationInterceptor"/>
</list>
</property>
</bean>
<!--mapper接口扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<property name="basePackage" value="com.ssm.mapper"/>
</bean>
</beans>
重新运行:页面效果和之前一样,实现了分页
控制台输出:sql语句也有了limit,插件分页成功。
总结:使用mybatisPlus提供的page对象如果注册了分页插件就是真分页,否则就是假的。假分页不建议使用,大量数据会导致内存占用高,甚至卡死!
上一篇: python画三维(3D)图
下一篇: MyBatisPlus|分页插件
推荐阅读
-
java使用插件pagehelper在mybatis中实现分页查询
-
thinkphp5配合datatable插件分页后端处理程序
-
Vue引用Swiper4插件无法重写分页器样式的解决方法
-
jQuery插件分享之分页插件jqPagination
-
VUEJS实战之利用laypage插件实现分页(3)
-
jQuery Pagination分页插件使用方法详解
-
SpringBoot项目中分页插件PageHelper无效的问题及解决方法
-
angular分页插件tm.pagination二次触发问题解决歪方案
-
利用Bootstrap Paginator插件和knockout.js完成分页功能
-
jQuery Pagination分页插件_动力节点Java学院整理