1.导入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
2.spring配置文件中配置pageHelper
<!--配置SqlSessionFactory工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--给实体类起别名-->
<property name="typeAliasesPackage" value="com.cn.domain"/>
<property name="dataSource" ref="dataSource" />
<!--配置pagehelper-->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<!--表示使用哪种数据库-->
<prop key="helperDialect">mysql</prop>
<!--当到达第一页或最后一页不会溢出报错,例如在第一页点上一页还是第一页-->
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
3.实体类(com.cn.domain)
public class User {
//加上构造方法,get和set方法以及toString方法
private int id;
private String name;
private String gender;
private int age;
private String address;
private String qq;
private String email;
}
4.service层(com.cn.service)
@Service
public class UserService {
@Autowired
private UserDao userDao;
/**
* 查询所有
* @return
*/
public List<User> findAll() {
return userDao.findAll();
}
}
5.dao层(com.cn.dao)
@Mapper
public interface UserDao {
/**
* 查询所有
* @return
*/
List<User> findAll();
}
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cn.dao.UserDao">
<select id="findAll" resultType="user">
SELECT * from user
</select>
</mapper>
6.servlet层(com.cn.servlet)
@WebServlet("/PageServlet")
public class PageServlet extends HttpServlet {
@Autowired
private UserService userService;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//获取当前页的参数
String pageNum = request.getParameter("pageNum");
//将当前页参数转为int
int num;
if (pageNum==null){
num = 1;
}else {
num = Integer.parseInt(pageNum);
}
PageHelper.startPage(num,6); //第一个参数代表当前页码 第二个参数代表每页多少条记录数
List<User> users = userService.findAll();
PageInfo<User> pageInfo= new PageInfo(users);
HttpSession session = request.getSession();
session.setAttribute("pageInfo",pageInfo);
request.getRequestDispatcher("/list.jsp").forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
this.doPost(request, response);
}
}
7.list.jsp(使用boostrap)
<c:if test="${empty pageInfo}"><c:redirect url="PageServlet"></c:redirect></c:if>
<form method="post">
<table border="1" class="table table-bordered table-hover">
<tr class="success">
<th><input type="checkbox" id="firstCb"></th>
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>籍贯</th>
<th>QQ</th>
<th>邮箱</th>
<th>操作</th>
</tr>
<c:forEach items="${pageInfo.list}" var="u" varStatus="s">
<tr>
<td><input type="checkbox" name="uid" value="${u.id}"></td>
<td>${s.count}</td>
<td>${u.name}</td>
<td>${u.gender}</td>
<td>${u.age}</td>
<td>${u.address}</td>
<td>${u.qq}</td>
<td>${u.email}</td>
</c:forEach>
</table>
</form>
<div>
<nav aria-label="Page navigation">
<ul class="pagination">
<c:if test="${pageInfo.pages == 1}">
<li class="disabled">
</c:if>
</li>
<c:if test="${pageInfo.pages != 1}">
<li>
</c:if>
<a href="${pageContext.request.contextPath}/PageServlet?pageNum=${pageInfo.pageNum - 1}" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
<c:forEach begin="1" end="${pageInfo.pages}" var="i" >
<c:if test="${pageInfo.pageNum == i}">
<li class="active"><a href="${pageContext.request.contextPath}/PageServlet?pageNum=${i}">${i}</a></li>
</c:if>
<c:if test="${pageInfo.pageNum != i}">
<li><a href="${pageContext.request.contextPath}/PageServlet?pageNum=${i}">${i}</a></li>
</c:if>
</c:forEach>
<li>
<a href="${pageContext.request.contextPath}/PageServlet?pageNum=${pageInfo.pageNum + 1}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
<span style="font-size: 25px;margin-left: 5px;">
共${pageInfo.total}条记录,共${pageInfo.pages}页
</span>
</ul>
</nav>
</div>
8.访问(效果如下)