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

被折叠的 条评论
为什么被折叠?



