mybatis-plus分页查询的实现示例
按照官方文档进行的配置:快速开始|mybatis-plus
引入依赖:
com.baomidou mybatis-plus-boot-starter 3.2.0 mysql mysql-connector-java 5.1.27 com.alibaba druid 1.0.29
在application.yml配置
spring: datasource: type:com.alibaba.druid.pool.DruidDataSource driver-class-name:com.mysql.jdbc.Driver url:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8 username:root password:123456
在启动类上面添加@MapperScan注解,扫描mapper包
@SpringBootApplication
@MapperScan("com.qiao.demo02.mapper")
publicclassSpringbootDemo02Application{
publicstaticvoidmain(String[]args){
SpringApplication.run(SpringbootDemo02Application.class,args);
}
}
新建User和UserMapper
user类
@Data
publicclassUser{
@TableId
privateIntegeruserId;
privateStringuserName;
privateIntegeruserAge;
privateStringuserEmail;
}
UserMapper接口
publicinterfaceUserMapperextendsBaseMapper{ }
最重要的是继承BaseMapper
publicinterfaceBaseMapperextendsMapper { intinsert(Tentity); intdeleteById(Serializableid); intdeleteByMap(@Param("cm")Map columnMap); intdelete(@Param("ew")Wrapper wrapper); intdeleteBatchIds(@Param("coll")CollectionidList); intupdateById(@Param("et")Tentity); intupdate(@Param("et")Tentity,@Param("ew")Wrapper updateWrapper); TselectById(Serializableid); List selectBatchIds(@Param("coll")CollectionidList); List selectByMap(@Param("cm")Map columnMap); TselectOne(@Param("ew")Wrapper queryWrapper); IntegerselectCount(@Param("ew")Wrapper queryWrapper); List selectList(@Param("ew")Wrapper queryWrapper); List
分页查询
这点官方文档讲的也很详细:https://mp.baomidou.com/guide/page.html
新建一个config包,在里面建一个MybatisPlus配置类返回一个分页拦截器
packagecom.qiao.demo02.config;
@Configuration
@ConditionalOnClass(value={PaginationInterceptor.class})
publicclassMybatisPlusConfig{
@Bean
publicPaginationInterceptorpaginationInterceptor(){
PaginationInterceptorpaginationInterceptor=newPaginationInterceptor();
returnpaginationInterceptor;
}
}
这样就能使用mybatis的分页功能了
Junit测试
@Resource
privateUserMapperuserMapper;
@Test
publicvoidqueryUserForPage(){
IPageuserPage=newPage<>(2,2);//参数一是当前页,参数二是每页个数
userPage=userMapper.selectPage(userPage,null);
Listlist=userPage.getRecords();
for(Useruser:list){
System.out.println(user);
}
}
Controller返回json串
先定义一个包装类UserVo,用来保存分页所需要的数据
packagecom.qiao.demo02.vo;
@Data
publicclassUserVo{
privateIntegercurrent;
privateIntegersize;
privateLongtotal;
privateListuserList;
}
然后在控制器编写代码,这里省略了service层,实际开发业务代码写在service层,Controller只负责:接受参数、调用service层方法处理业务逻辑,返回结果
Controller类贴上了@RestController注解
@GetMapping("queryUser")
publicUserVoqueryList(Integercurrent,Integersize){
/**
*这些代码应该写在service层
*/
UserVouserVo=newUserVo();
IPagepage=newPage<>(current,size);
userMapper.selectPage(page,null);
userVo.setCurrent(current);
userVo.setSize(size);
userVo.setTotal(page.getTotal());
userVo.setUserList(page.getRecords());
returnuserVo;
}
附上结果,前端直接处理json数据即可
到此这篇关于mybatis-plus分页查询的实现示例的文章就介绍到这了,更多相关mybatis-plus分页查询内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。