springboot 整合分页插件
作者:javaNice
- 2023-11-28 四川
本文字数:1859 字
阅读完需:约 6 分钟
springboot 整合分页插件
1.增加分页配置
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Description: 分页配置
* @author woniu
* @date 2023-09-18 14:53
**/
@Configuration
@Slf4j
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
final long limit = 500L;
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
//你的最大单页限制数量,默认 500 条,小于 0 如 -1 不受限制)
paginationInterceptor.setLimit(limit);
log.info("注册分页插件,你的最大单页限制数量:"+limit);
return paginationInterceptor;
}
}
复制代码
2.pom 配置
<!--mybatis-plus 持久层-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
复制代码
3.分页工具类
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* @author woniu
* @date 2023-09-18
*/
public class PageUtil {
/**
* 构建page 由于表单分页是从0开始的,所有这里统一都从0开始
* @param pageNum
* @param pageSize
* @return
*/
public static <T> Page<T> buildPage(Integer pageNum,Integer pageSize){
pageNum = pageNum==null?0:pageNum;
pageSize = pageSize==null?25:pageSize;
return new Page<>(pageNum,pageSize);
}
}
复制代码
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 分页实体类
*
* @author woniu
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageResult<T> implements Serializable {
private static final long serialVersionUID = -275582248840137389L;
/**
* 总数
*/
private Long count;
/**
* 当前页结果集
*/
private List<T> data;
public static <T> PageResult<T> empty() {
return new PageResult<>(0L, new ArrayList<>());
}
}
复制代码
4.分页代码
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, UserEntity> implements UserService {
@Override
public PageResult<UserRespVo> findList(UserReqVo reqVo) {
Page<UserRespVo> page = PageUtil.buildPage(reqVo.getPageNum(), reqVo.getPageSize());
List<UserRespVo> list = this.baseMapper.findList(page, reqVo);
return PageResult.<UserRespVo>builder()
.data(list)
.count(page.getTotal())
.build();
}
复制代码
public interface UserMapper extends BaseMapper<UserEntity> {
/**
* 列表
*
* @param page
* @param reqVo
* @return
*/
List<UserRespVo> findList(Page<UserRespVo> page, @Param("vo") UserReqVo reqVo);
}
复制代码
5.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.woniu.woniuuser.mapper.UserMapper">
<resultMap id="userRespVo" type="com.woniu.crm.user.resp.UserRespVo"></resultMap>
<select id="findList" resultMap="userRespVo">
select * from user
<where>
and del_flag = '009'
<if test="vo.userName != null and vo.userName != ''">
<bind name="likeUserName" value="'%' + vo.userName + '%'"/>
and user_name like #{likeUserName}
</if>
</where>
</select>
</mapper>
复制代码
springboot 整合分页插件 springboot 整合分页插件 springboot 整合分页插件 springboot 整合分页插件 springboot 整合分页插件 springboot 整合分页插件
划线
评论
复制
发布于: 刚刚阅读数: 4
版权声明: 本文为 InfoQ 作者【javaNice】的原创文章。
原文链接:【http://xie.infoq.cn/article/77b392da913d62dfcf90ed6cc】。文章转载请联系作者。
javaNice
关注
还未添加个人签名 2023-11-02 加入
还未添加个人简介
评论