-
2022-04-28 14:51:23
写个文章仅仅为了记笔记——————
目录
MyBatisPlus自带分页插件,只需简单的配置就可以实现分页功能
一.实现一个简单的分页测试功能
(一)添加配置类
最好在项目src内新创建一个config配置类文件夹,创建配置类MyBatisPlusConfig
1.添加配置类注解@Configuration。
2.需要扫描mapper接口所在的包(主类中的注解移过来)例:
@MapperScan("nuc.guigu.zwj.mybatisplus.mapper")
3.配置分页插件(需要注解@Bean)
配置类代码:
@Configuration @MapperScan("nuc.guigu.zwj.mybatisplus.mapper") public class MyBatisPlusConfig { //配置分页插件 @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); //数据库类型是MySql,因此参数填写DbType.MYSQL interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
(二)接下来创建一个测试类MyBatisPlusTest
1.测试类记得添加注解@SpringBootTest
2.对使用的mapper组件进行自动装配,添加注解@Autowired
@Autowired UserMapper userMapper;
3.测试方法里
userMapper方法里有一个selectPage(),这个方法参数有两个,第一个是Page类型的(分页对象),第二个是Wapper类型的,因此我们创建这两个对象。
Page类的泛型为我们操作的实体类对象,参数为当前页的页码(current),个每页显示的条数(size),语句为
Page<User> page = new Page<>(2,3);
第二个参数Wapper类型为条件构造器的条件,因为这里查询的是所有数据(即没有条件),所以Wapper类型的数据填null。
输出page对象,执行可以看到输出的是page的内存地址
那么之后就可以访问page对象的各个数据。
4.测试类代码
@SpringBootTest public class MyBatisPlusPluginsTest { @Autowired UserMapper userMapper; @Test public void test01(){ Page<User> page = new Page<>(2,3); userMapper.selectPage(page,null); System.out.println(page); } }
(三)一些page对象封装的数据测试
System.out.println(page.getRecords());//获取分页记录 System.out.println(page.getPages());//总页数 System.out.println(page.getTotal());//总记录数 System.out.println(page.hasNext());//是否有下一页 System.out.println(page.hasPrevious());//是否有上一页
二. 自定义分页功能
加入需要查询以用户年龄为条件输出用户信息数据并分页时
自定义的page方法返回值必须是page
(一)创建接口
在接口类Mapper类里创建方法SelectPageByAge(),类型仍然为Page,泛型为实体类User,参数第一个为Page<User> page,第二个为年龄Integer age。这里有两个参数,我们设置参数的访问规则可以使用@Param。
Page<User> selectPageByUser(@Param("page") Page<User> page, @Param("age") Integer age);
(二)添加配置文件
配置类型别名所对应的包,在yml中添加配置
mybatis-plus: #配置类型别名所对应的包 type-aliases-package: nuc.guigu.zwj.mybatisplus.pojo
这个时候就可以使用类型别名了,这个包下的所有的类型都可以使用所对应的默认的别名,即resultType可以直接等于“User”,而不用写user的相对路径。
在xml文件中添加SelectPageByAge方法的映射
<select id="selectPageByAge" resultType="User"> select uid,user_name,age,email from t_user where age > = #{age}; </select>
(三)创建测试方法
前面的都一样,改变的是自定义page方法的第二个参数,将其改为了Integer类型的年龄age
@Test public void testPageByAge(){ Page<User> page = new Page<>(1,3); userMapper.selectPageByAge(page,20); System.out.println(page.getRecords());//获取分页记录 System.out.println(page.getPages());//总页数 System.out.println(page.getTotal());//总记录数 System.out.println(page.hasNext());//是否有下一页 System.out.println(page.hasPrevious());//是否有上一页 }
测试完成
更多相关内容 -
MyBatisPlus分页插件的使用
2022-05-18 17:53:02再开发过程中市场要写分页的功能,这里介绍mybatisplus分页插件的使用添加插件pom依赖
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>
编写配置文件
package com.qhy.demo.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author qiuhongyu * @date 2022/5/18 17:55 */ @Configuration public class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
使用方法,设置当前页和每页显示的条数。然后调用方法查询的时候将page的时候放进去即可
Page<ModelCampaignVO> page = new Page<>(pageNum(), pageSize()); demoMapper.getUserInfo(name,page)
-
MyBatisPlus分页插件在SpringBoot中的使用
2022-06-07 20:01:54@MapperScan("com.zyz.mybatisplus.mapper") public class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor...
文件的创建: https://blog.csdn.net/weixin_43304253/article/details/1250470081、目录结构
2、新增配置
@Configuration //扫描mapper接口所在的包 @MapperScan("com.zyz.mybatisplus.mapper") public class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor(){ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
3、编写测试类
@SpringBootTest public class MyBatisPlusPluginsTest { @Autowired private UserMapper userMapper; @Test public void testPage(){ Page<User> page = new Page<>(2,3); userMapper.selectPage(page,null); System.out.println(page.getRecords()); System.out.println(page.getPages()); System.out.println(page.getTotal()); System.out.println(page.hasNext()); System.out.println(page.hasPrevious()); } }
4、测试结果
5、数据库中的表
-
MybatisPlus - 分页插件使用
2022-06-23 18:11:57MybatisPlus 分页插件的使用在 Mybatis Plus 官方文档 - 分页插件说明 中可以看到分页插件支持的数据库,以及可配置的属性参数说明。这里只是结合工作中的项目说明一下该插件(还有另外一个分页插件
PageHelper
)的使用方式:背景
几乎每一个 web 项目都需要使用到分页,在不使用分页插件的时候,我们一般返回分页数据都是在
sql
语句后面添加limit
语句,然后再配置一条sql
语句来查询某些条件下的总条数:// 查询数据 <select id="listByOrderId"> select * from order <where> <if> ... </if> ... </where> limit #{pageIndex} , #{pageSize} </select> // 查询总数量 <select id="countByOrderId" resultType="java.lang.Integer"> select count(*) from order where orderId = #{orderId} <where> <if> ... </if> ... </where> </select>
然后再新建一个分页对象用于返回数据,比如:
public class PageResult { /** * 总页数 */ private int total; /** * 数据 */ private List<T> list; }
通用接口
官方提供了几种通用分页查询:
// 无条件分页查询 IPage<T> page(IPage<T> page); // 条件分页查询 IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper); // 无条件分页查询 IPage<Map<String, Object>> pageMaps(IPage<T> page); // 条件分页查询 IPage<Map<String, Object>> pageMaps(IPage<T> page, Wrapper<T> queryWrapper);
自定义接口
- mapper
第一个参数必须是分页的参数
IPage
,后面的参数可以是查询参数IPage<PayOrderListVO> listPayOrder(IPage<PayOrderListVO> query);
- service
Page<PayOrderListVO> pageQuery = new Page<>(query.getPageIndex(), query.getPageSize()); IPage<PayOrderListVO> list = orderPayInfoMapper.listPayOrder(pageQuery);
-
MyBatisplus分页插件
2022-05-04 15:29:35配置分页插件2. 编写分页代码3. 测试二、自定义查询2.1. 自定义接口2.2. 自定义查询2.3. 测试自定义分页 一、后台分页配置 MyBatis Plus自带分页插件(即BaseMapper接口中的selectPage()方法),只要简单的配置即可... -
最新版 MyBatisPlus 分页插件(直接拿来就可以用)
2022-05-31 13:15:01import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import ... -
MybatisPlus 分页插件
2021-11-05 22:36:52前端代码 <...-- 分页start --> <el-dialog :visible.sync="dialogPageviewsVisible" title="Reading statistics" > <el-table :data="pageviewsData" border fit highl. -
SpringBoot整合MybatisPlus分页插件
2022-07-14 10:07:12MybatisPlus分页查询插件 -
MybatisPlus分页插件
2022-05-29 23:37:081、分页插件 MyBatis Plus自带分页插件,只要简单的配置...mybatisPlus的分页插件只需这两步就可以对查询到的数据进行分页。 pageNum是前端传来的当前页,pageSize是前端传来的一页有多少条数据,name是查询条件。 ... -
MybatisPlus分页插件的简单使用
2021-07-28 15:50:55//新建分页对象 Page<T> page = new Page<>(); //设置当前页 page.setCurrent(current); //设置当前记录数 page.setSize(size); //分页操作实现,括号里面写的是你在mapper层写的查询接口,需要... -
完美解决MybatisPlus插件分页查询不起作用总是查询全部数据问题
2020-09-07 18:59:22主要介绍了解决MybatisPlus插件分页查询不起作用总是查询全部数据问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 -
SpringBoot简单使用MybatisPlus分页插件
2022-05-07 14:43:57SpringBoot简单使用MybatisPlus分页插件 -
mybatisplus分页查询——Page
2022-07-07 15:02:13mybatisplus分页查询——Page -
MybatisPlus分页插件的使用
2022-01-14 22:53:35MybatisPlus分页插件的使用 实现医院列表展示 1. 添加service分页接口与实现 在HospitalService类添加分页接口 /** * 分页查询 * @param page 当前页码 * @param limit 每页记录数 * @param hospitalQueryVo ... -
MybatisPlus中分页插件的使用
2022-02-22 00:00:45package com.dongmu.mybatisplus.config; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import ... -
mybatis-plus整合SpringBoot之——分页插件使用
2022-05-14 10:04:23mybatis-plus整合springboot,分页插件使用 -
MyBatis Plus 分页插件使用
2021-09-18 11:23:39配置分页插件 ```java @Configuration public class MyBatisPlusConfig { /** * 分页插件配置 * * @return PaginationInterceptor */ @Bean public PaginationInterceptor paginationInterceptor() { return ... -
MybatisPlus使用分页插件
2022-03-25 22:15:11MybatisPlus使用分页插件 -
mybatis-plus分页插件的使用
2022-01-27 18:15:42分页插件的使用 (1)简介:与 mybatis 的插件 pagehelper 用法类似。通过简单的配置即可使用。 (2)使用Step1: 配置分页插件。 编写一个 配置类,内部使用 @Bean 注解将 PaginationInterceptor 交给 Spring... -
mybatis-plus 分页插件的使用
2022-01-22 16:29:39首先要先配置好分页插件。 写一个配置类,在其中加入分页插件 @Bean MybatisPlusInterceptor mybatisPlusInterceptor(){ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.... -
Springboot + MyBatis-plus 分页插件的使用
2022-05-21 19:45:31import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import ... -
Mybatis-plus分页插件使用(新)
2022-02-25 14:08:25Mybatis-Plus分页插件使用Config配置ServiceController测试 Config配置 @Configuration @EnableTransactionManagement @MapperScan("com.liyue.music.dao") public class ApplicationConfig { /** * 插件主体 * ... -
MyBatis-Plus分页插件的使用
2022-05-07 23:31:19import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; ... -
Spring Boot使用Mybatis-Plus分页插件
2022-03-31 23:05:511.在SpringBoot项目的maven里导入mybatis-plus插件 <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</... -
mybatisplus的分页插件以及自定义分页
2022-04-21 15:34:20目录 1、分页插件 a>添加配置类 b>测试 2.xml自定义分页 a>UserMapper中定义接口方法 b>UserMapper.xml中编写SQL c>测试 1、分页插件 MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能 。 a>添加配置类 ... -
mybatis-plus 分页插件
2022-08-02 13:39:59大家之前肯定都用过PageHelper来进行分页,其实mybatisplus中也提供了一个分页插件PaginationInnerInterceptor,其实分页的本质就是内部封装了一个拦截器,对于满足条件的数据进行过滤处理。有时候可能mybatisplus中... -
MyBatisPlus分页插件拦截器配置
2021-11-23 16:46:14MyBatisPlus分页插件拦截器配置 package com.hospital.common.security.core.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.springframework.context.annotation.... -
MyBatis-Plus分页插件使用,自带分页及xml分页的使用
2019-01-31 17:03:39import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.... -
MybatisPlus分页插件和自动填充
2022-05-20 18:11:24* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除) */ @Bean public MybatisPlusInterceptor ...