1.在pom中引入插件:
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
2.配置分页插件
打开application.properties,添加如下几行配置信息
#分页插件
pagehelper.helper-dialect=mysql
pagehelper.params=count=countSql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
3.编写相关代码:
pojo:
@NoArgsConstructor
@AllArgsConstructor
@Data
public class User2 {
public int id;
public String username;
public String sex;
public String photo;
public String zhuzhi;
public String zhuangtai;
}
这里我使用了lombok插件自动生成 有参,无参构造,get和set方法;
详细可以看lombok偷懒神器。
要分页的数据库:
mapper:
@Repository
@Mapper
public interface UserMapper2 {
// 查询所有
List<User2> selectUser();
}
<select id="selectUser" resultType="User2">
select * from user2
</select>
service及其实现类
public interface User2Service {
// 查询所有
List<User2> selectUser();
// 分页查询
PageInfo<User2> pageInfo(int pageNum);
}
@Service
public class User2ServiceImpl implements User2Service {
@Autowired
private UserMapper2 userMapper2;
@Autowired
User2Service user2Service;
// 查询所有数据
@Override
public List<User2> selectUser() {
return userMapper2.selectUser();
}
// 分页查询
@Override
public PageInfo<User2> pageInfo(int pageNum) {
// 设置一页3条数据,pageNum表示第几页;
PageHelper.startPage(pageNum,3);
// list为所有数据的集合;
List<User2> list = user2Service.selectUser();
// 转换为PageInfo就可以实现分页
PageInfo<User2> pageInfo = new PageInfo<User2>(list);
return pageInfo;
}
}
编写Controller:
@Controller
public class UserController {
@Autowired
private User2Service user2Service;
// 分页查询
@RequestMapping("/list1")
// 默认当前页为1,也就是不传值时;
public String list1(Model model,@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum) {
PageInfo<User2> pageInfo = user2Service.pageInfo(pageNum);
model.addAttribute("pageInfo",pageInfo);
return "member/member-list";
}
}
thylemeaf:
<tbody>
<tr th:each="user:${pageInfo.getList()}">
<td>
<input type="checkbox" name="id" value="1" lay-skin="primary">
</td>
<td th:text="${user.getId()}"></td>
<td th:text="${user.getUsername()}"></td>
<td th:text="${user.getSex()}"></td>
<td th:text="${user.getPhoto()}"></td>
<td th:text="${user.getZhuzhi()}"></td>
<td th:text="${user.getZhuangtai()}"></td>
</tbody>
<div class="layui-card-body ">
<div class="page">
<div>
<a class="prev" th:href="@{/list1}"><<</a>
<a class="num" th:href="@{/list1(pageNum=${pageInfo.hasPreviousPage}?${pageInfo.prePage}:1)}">上一页</a>
<!-- <span class="current" th:value="${pageInfo.pageNum}"></span>-->
<p>当前 <span th:text="${pageInfo.pageNum}"></span> 页,总 <span th:text="${pageInfo.pages}"></span> 页,共 <span th:text="${pageInfo.total}"></span> 条记录</p>
<a class="num" th:href="@{/list1(pageNum=${pageInfo.hasNextPage}?${pageInfo.nextPage}:${pageInfo.pages})}">下一页</a>
<!-- <a class="num" href="">489</a>-->
<a class="next" th:href="@{/list1(pageNum=${pageInfo.pages})}">>></a>
</div>
</div>
</div>