1.解决分页越界
1.1出现的问题
于是我索性把分页去掉想是不是就可以了,结果发现还不行
1.2解决方法
就当我找了一两个小时抓耳挠腮时,万幸在csdn上找到了相关的帖子,在此感谢一下那位大佬。
原因是我的实体类中没有构造方法,那样就无法通过ORM反射机制来创建对象。
因此在实体类中添加@NoArgsContructor即可
但由于我的方法中有@Builder注解无法添加lombok的@NoArgsContructor的注解
在后面直接写构造就好
2.分页业务实现
2.1引入pom依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2.2Controller层编写
里面UserSearchVo是查询条件
分页参数一般放在url上就好
@ApiOperation(value = "后台根据手机号条件查询用户")
@GetMapping("queryList/{pageNum}/{pageSize}")
public Result queryList(@PathVariable int pageNum,@PathVariable int pageSize, UserSearchVo userSearchVo)
{
return new Result(2000,"后台分页手机号条件查询所有用户成功",usersService.queryList(pageNum,pageSize,userSearchVo));
}
Service层
Result queryList (int pageNum, int pageSize, UserSearchVo userSearchVo);
ServiceImpl层
PageHelper放在需要分页条件的上面
//查询用户列表
@Override
public Result queryList(int pageNum, int pageSize, UserSearchVo userSearchVo) {
PageHelper.startPage(pageNum,pageSize);
List<Users> usersList = usersDao.queryList(userSearchVo);
PageInfo<Users> usersPageInfo = new PageInfo<>(usersList);
return new Result(2000,"后台查询用户列表成功",usersPageInfo);
}
mapper层
我使用userSearchVo封装的 里面有phone属性 phone 一定要在实体类映射中
直接使用phone即可 无需使用userSearchVo了
<select id="queryList" resultType="com.hrmy.entity.Users">
select
id, openid, nickname, avatar_url, sex, phone, created_at, updated_at, status, member_points
from users
<where>
<if test="phone != null and phone != ''">
and phone = #{phone}
</if>
and users.del_flag = 0
</where>
</select>