mybatisPlus 分页查询

本文介绍了如何在Java中使用MybatisPlus进行分页查询,包括设置分页拦截器、使用Service接口和Mapper接口进行条件查询,以及自定义分页方法。同时提到了@Mapper和@Repository注解的区别,以及Mybatis-Plus中类型别名的配置。

1,分页说明

注意:分页的起始页可以是0或者1,两者效果相同

数据库表信息:

在这里插入图片描述

2,开启分页

在这里插入图片描述

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
    MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
    mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
    return mybatisPlusInterceptor;
}

注意:这里引入一个知识点,关于@Repository与@Mapper注解的区别

@Mapper是mybatis自身带的注解
@Repository是spring提供的注释,需要配合@Mapperscan注解使用
(多一嘴,@Mapperscan最好写在MybatisPlusConfig配置上,如果没有MybatisPlusConfig类,那就写在启动类上)

更多细节:https://blog.youkuaiyun.com/weixin_44458631/article/details/120825019

3,使用service接口:

【全部查询】

Page page = new Page(1,5);
Page<UserInfo> pageInfo = userInfoService.page(page);
pageInfo.getRecords().forEach(System.out::println);

结果打印:

在这里插入图片描述

【携带条件构造器】

Page page = new Page(1,5);
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.ge(UserInfo::getCreateTime,"2023-04-18 00:00:00");
Page pageInfoWrapper = userInfoService.page(page, lambdaQueryWrapper);
pageInfoWrapper.getRecords().forEach(System.out::println);

结果打印:

在这里插入图片描述

4,使用UserInfoMapper接口:

Page page1 = new Page(0,5);
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.ge(UserInfo::getCreateTime,"2023-04-18 00:00:00");

Page<UserInfo> infoPage = userInfoMapper.selectPage(page1, lambdaQueryWrapper);
infoPage.getRecords().forEach(System.out::println);

Page<Map<String, Object>> mapPage = (Page<Map<String, Object>>) userInfoMapper.selectMapsPage(page1, lambdaQueryWrapper);
mapPage.getRecords().forEach(System.out::println);

结果打印:

在这里插入图片描述
在这里插入图片描述

5,自定义分页

mapper接口:

Page<UserInfo> queryAllUser(Page<UserInfo> page,Integer sex);

mapper.xml:

<select id="queryAllUser" resultType="UserInfo">
    select * from t_user where sex = #{sex}
</select>

调用:

Page<UserInfo> page = new Page<>(1,5);
Page<UserInfo> userInfos = userInfoMapper.queryAllUser(page,1);
userInfos.getRecords().forEach(System.out::println);

结果打印:

在这里插入图片描述

注意一点:

以前xml写法

<select id="queryUser" resultType="com.demo.entity.UserInfo">
</select>

配置文件添加别名后

mybatis-plus:   
   type-aliases-package: com.demo.entity

添加别名设置后xml写法

<select id="queryUser" resultType="UserInfo">
</select>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值