SpringBoot+MyBatis+pageHelper分页,且按条件模糊分页
maven架包
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
application.yml配置文件
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
entity实体类
@Data
public class User implements Serializable {
private Integer id;
private String loginName;
private String loginPswd;
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date regTime;
private List<Address> addressList=new ArrayList<>();
}
UserController控制器代码
@RequestMapping("/toUser")
public String toUser(String id, String name, @RequestParam(value = "pageIndex",defaultValue = "1") Integer pageIndex,
@RequestParam(value = "pageSize" ,defaultValue = "2") Integer pageSize, Model model){
PageInfo<User> userPageInfo=userService.toUser(id,name,pageIndex,pageSize);
System.out.println(userPageInfo);
model.addAttribute("user",userPageInfo);
return "users/userList";
}
UserService层
PageInfo<User> toUser(String id, String name, Integer pageIndex, Integer pageSize);
UserServiceImpl层
@Override
public PageInfo<User> toUser(String id,String name,Integer pageIndex, Integer pageSize) {
PageHelper.startPage(pageIndex,pageSize);
List<User> userList=userMapper.tuUser(id,name);
PageInfo<User> pageInfo =new PageInfo<>(userList);
return pageInfo;
}
UserMapper层
List<User> tuUser(@Param("id") String id, @Param("name") String name);
UserMapper.xml层
<!--分页-->
<select id="tuUser" resultType="user">
select * from tb_user
<where>
<if test="id!=null and id!=''">
and id=#{id}
</if>
<if test="name!=null and name!=''">
<bind name="name" value="'%'+name+'%'"/>
and name like #{name}
</if>
</where>
</select>
jsp页面
<%--
Created by IntelliJ IDEA.
User: ThinkPad
Date: 2019/11/9
Time: 22:02
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>全部数据</title>
</head>
<style type="text/css">
td,th{
border: 1px solid gray;
}
table {
text-align: center;
width: 50%;
border-collapse: collapse;
}
</style>
<body>
<center>
<form action="/user/toUser">
编号:<input type="text" name="id" id="id">
姓名:<input type="text" name="name" id="name">
<input type="submit" value="查询">
</form>
<table>
<tr>
<th>编号</th>
<th>用户名</th>
<th>用户</th>
<th>生日</th>
<th>注册时间</th>
</tr>
<c:forEach items="${user.list}" var="u">>
<tr>
<td>${u.id}</td>
<td>${u.loginName}</td>
<td><a href="/user/findById?id=${u.id}">${u.name}</a></td>
<td><fmt:formatDate value="${u.birthday}" pattern="yyyy-MM-dd"/> </td>
<td><fmt:formatDate value="${u.regTime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
</tr>
</c:forEach>
</table>
<div>
<a href="/user/toUser?pageIndex=${user.prePage}">上一页</a>
<a href="/user/toUser?pageIndex=${user.nextPage}">下一页</a>
</div>
</center>
</body>
</html>
最后效果展示
这是一个简单的小练习,最后欢迎大家指正错误,谢谢大家观看!