对应的实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Integer id;
private String username;
private String password;
private String nickname;
private String email;
private String phone;
private String address;
}
对应封装的工具类数据 总记录
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageBean {
private long total; //总记录条数
private List rows; //列表信息
}
对应的controller层
@GetMapping("/page")
public PageBean page(@RequestParam(defaultValue = "1", value = "pageNum") Integer pageNum,
@RequestParam(defaultValue = "4", value = "pageSize") Integer pageSize,
String username, String phone
) {
PageBean pageBean = userService.page(pageNum, pageSize, username, phone);
log.info("页{}条{}", pageNum, pageSize);
return pageBean;
}
对应的mapper层
/**
* 分页
*/
/* @Select("select * from sys_user limit #{start},#{pageSize}")
List<User> page(int start,Integer pageSize);*/
/**
* 分页查询 按条件查询
*
* @param start
* @param pageSize
* @param username
* @param phone
* @return
*/
// @Select("select * from sys_user limit #{start},#{pageSize}")
List<User> page(int start, Integer pageSize, String username, String phone);
mapper对应的xml文件
<!-- 按条件分页查询-->
<select id="page" resultType="com.xiaoren.entity.User">
select *
from sys_user
<where>
<if test="username != null">
username like concat(#{username},'%')
</if>
<if test="phone != null">
and phone = #{phone}
</if>
</where>
LIMIT #{start} ,#{pageSize};
</select>
业务接口
//分页
PageBean page(Integer pageNum, Integer pageSize);
//按条件分页
PageBean page(Integer pageNum, Integer pageSize, String username, String phone);
业务类
@Override
public PageBean page(Integer pageNum, Integer pageSize, String username, String phone) {
//统计总记录数
Long count = userMapper.count();
//按条件分页
int start = (pageNum - 1) * pageSize;
List<User> userList = userMapper.page(start, pageSize,username,phone);
//返回值
PageBean pageBean = new PageBean(count, userList);
return pageBean;
}