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放在需要分页条件的上面
//查询用户列表@Overridepublic 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">selectid, openid, nickname, avatar_url, sex, phone, created_at, updated_at, status, member_pointsfrom users<where><if test="phone != null and phone != ''">and phone = #{phone}</if>and users.del_flag = 0</where></select>