Spring Boot+thylemeaf 整合Pagehelper分页插件

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}">&lt;&lt;</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})}">&gt;&gt;</a>
                                </div>
                            </div>
                        </div>

4.展示:

在这里插入图片描述

5.扩展:pageInfo中的参数:

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值