效果

实现

前言

前面实现SSM整合以及实现原始手动分页参考

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/85113289

添加jar包

使用插件首先要先加载jar包

jar包下载:

https://download.csdn.net/download/badao_liumang_qizhi/10863649

将两个jar包,放到项目下的lib目录下。

修改applicationContext.xml

在sqlsession下增加

<property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><!--使用下面的方式配置参数,一行配置一个 --><value></value></property></bean></array>
</property>

完整代码

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><context:annotation-config /><context:component-scan base-package="com.badao.service" /><bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/ssmtest?characterEncoding=UTF-8</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>523627</value> </property>   </bean><bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="typeAliasesPackage" value="com.badao.pojo" /><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="classpath:com/badao/mapper/*.xml"/><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><!--使用下面的方式配置参数,一行配置一个 --><value></value></property></bean></array></property>  </bean><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.badao.mapper"/></bean></beans>

修改service

Service中去掉total方法和原来手动分页的方法

package com.badao.service;import java.util.List;import com.badao.pojo.User;
import com.badao.util.Page;public interface UserService {List<User> selectAllUser();//List<User> selectAllUser(Page page);//int total();}

修改serviceImpl

注释掉原来的手动分页方法

package com.badao.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import com.badao.mapper.UserMapper;
import com.badao.pojo.User;
import com.badao.service.UserService;
import com.badao.util.Page;
@Service
public class UserServiceImpl implements UserService {@AutowiredUserMapper userMapper;public List<User> selectAllUser() {// TODO Auto-generated method stubreturn userMapper.selectAllUser();}
/* @Overridepublic List<User> selectAllUser(Page page) {// TODO Auto-generated method stubreturn userMapper.selectAllUser(page);}@Overridepublic int total() {// TODO Auto-generated method stubreturn userMapper.total();}*/}

修改mapper

userMapper.java中注释掉total()方法以及原来的手动分页的方法。

package com.badao.mapper;import java.util.List;
import com.badao.pojo.User;
import com.badao.util.Page;public interface UserMapper {public int addUser(User user);public User selectUser(int id);public int updateUser(User user);public void deleteUser(int id);public List<User> selectAllUser();//public List<User> selectAllUser(Page page);//public int total();}

userMapper.xml中去掉total的select语句以及原来的limit语句

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.badao.mapper.UserMapper"><insert id="addUser" parameterType="User" >insert into user ( name,age ) values (#{name},#{age})  </insert><delete id="deleteUser" parameterType="_int" >delete from user where id= #{id} </delete><select id="selectUser" parameterType="_int" resultType="User">select * from   user  where id= #{id}  </select><update id="updateUser" parameterType="User" >< BR>           updateusersetname=#{name},age=#{age} where id=#{id}  </update><select id="selectAllUser" resultType="User">select * from   user    <BR>           <!--<iftest="start!=null and count!=null">limit #{start},#{count}</if> --></select><!-- <select id="total" resultType="int">select count(*) from user</select>     --></mapper>

修改Controller

通过

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

导入类

通过

PageHelper.offsetPage(page.getStart(),5);

实现分页按需查询

通过

int total = (int) new PageInfo<>(cs).getTotal();

获取查询的总数

完整代码

package com.badao.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import com.badao.pojo.User;
import com.badao.service.UserService;
import com.badao.util.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;// 告诉spring mvc这是一个控制器类
@Controller
@RequestMapping("")
public class UserController {@AutowiredUserService userService;@RequestMapping("listUser")public ModelAndView listUser(Page page){ModelAndView mav = new ModelAndView();//根据分页对象,进行查询获取查询对象集合//List<User> cs= userService.selectAllUser(page);//int total = userService.total();//根据总数,计算最后一页的信息PageHelper.offsetPage(page.getStart(),5);List<User> cs= userService.selectAllUser();int total = (int) new PageInfo<>(cs).getTotal();page.caculateLast(total);// 放入转发参数mav.addObject("userList", cs);// 放入jsp路径mav.setViewName("listUser");return mav;}}

修改测试类

注释掉原来的的手动分页实现时的单元测试代码

package com.badao.test;import java.util.List;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import com.badao.mapper.UserMapper;
import com.badao.pojo.User;
import com.badao.util.Page;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;//使用junit4时报错导这个包
@RunWith(SpringJUnit4ClassRunner.class)//使用junit4进行测试
@ContextConfiguration("classpath:applicationContext.xml")//加载配置文件
public class InsertTest {@Autowired//自动注入private UserMapper userMapper;@Test//标明是测试方法@Rollback(false)  //标明使用完此方法后事务不回滚,true时为回滚public void testAdd() {for (int i = 0; i < 100; i++) {User user = new User();user.setName("user"+i);userMapper.addUser(user);}}/*  @Testpublic void testTotal() {int total = userMapper.total();System.out.println(total);}@Testpublic void testList() {Page p = new Page();p.setStart(2);p.setCount(3);List<User> cs=userMapper.selectAllUser(p);for (User c : cs) {System.out.println(c.getName());}}*/
}

jsp页面代码

保持不变

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" import="java.util.*"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%pageContext.setAttribute("APP_PATH", request.getContextPath());
%>
<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>查询所有用户</title>
</head><script type="text/javascript" src="${APP_PATH }/static/js/jquery-1.12.4.min.js"></script>
<link href="${APP_PATH }/static/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
<script src="${APP_PATH }/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
<body>
<table align='center' border='1' cellspacing='0' class="table table-bordered"<th ><td>id</td><td>name</td><td>age</td></th><c:forEach items="${userList}" var="u"><tr class="active"><td >${u.id}</td><td>${u.name}</td><td>${u.age}</td></tr></c:forEach>
</table>
<div style="text-align:center"><a href="?start=0">首  页</a><a href="?start=${page.start-page.count}">上一页</a><a href="?start=${page.start+page.count}">下一页</a><a href="?start=${page.last}">末  页</a>
</div></body>
</html>

源码下载

https://download.csdn.net/download/badao_liumang_qizhi/10863821

SSM中使用Mybatis的PageHelper插件实现分页相关推荐

  1. layui结合mybatis的pagehelper插件的分页通用的方法

    总体思路: 1.前台查询的时候将当前页和页大小传到后台 2.后台将当前页,页大小以及数据与数据总数返回前台,前台显示完表格完数据之后显示分页插件. 前台页面: 准备查询条件的表单,与数据表格,分页di ...

  2. SSM项目使用Mybatis通用mapper插件tk.mybatis的用法

    SSM项目使用Mybatis通用mapper插件tk.mybatis的用法 https://blog.csdn.net/qq_40060806/article/details/82949722 TKm ...

  3. SpingBoot中使用MyBatis和pagehelper实现数据的增删改查和分页

    文章目录 一.认识MyBatis CRUD注解 映射注解 高级注解 二.用MyBatis实现数据的增加.删除.修改.查询和分页 1.创建springboot项目并引入依赖 2.实现数据表的自动初始化 ...

  4. java 分页_Spring Boot + MyBatis 如何借助PageHelper插件实现分页效果

    概述 上文中已经介绍了Spring和MyBatis的整合,在上文的基础上我们加入了PageHelper这个插件,来实现MyBatis列表查询的分页效果 PageHelper是啥 PageHelper是 ...

  5. IDEA中安装MyBatis Log Plugin插件完整显示执行的mybatis的sql语句

    场景 在IDEA中mybatis执行的sql语句会将参数输出为? 这样的sql语句时不完整的,不利于后续的sql语句排错等. MyBatis Log Plugin 这款插件是直接将Mybatis执行的 ...

  6. Spring + Mybatis 使用 PageHelper 插件分页

    转载:http://blog.csdn.net/joker_zhou/article/details/50418005 先增加maven依赖: [html] view plaincopy print? ...

  7. springboot+mybatis 利用PageHelper插件分页,结果第二页的返回分页信息还是和第一页一样。

    正常使用PageHelper来分页时可以的,但是如果在查询list后做了非常多的处理,即解包在装包操作.可能最后返回时分页的数据查询的对,但是分页信息就有问题了.有的甚至分页功能都不行.这里为避免几个 ...

  8. 毕设IDEA2019之ssm多表分页模糊查询(PageHelper插件)

    PageHelper插件实现分页查询请戳这. 本篇在分页的基础上实现模糊查询,因为单表有点简单,直接介绍多表,输入关键字查找相关内容,之前几篇有点脱离毕设项目了,这篇开始尽量用项目做例子.没什么好说的 ...

  9. SSM中PageHelper的使用步骤与com.github.pagehelper.PageHelper3系列与5系列的区别

    SSM中PageHelper的使用步骤 一. 在pom.xml导入依赖 <dependency><groupId>com.github.pagehelper</group ...

最新文章

  1. 简单备忘一下Linux下的wget和curl如何使用http proxy
  2. Oracle 11g新特性之--只读表(read only table)
  3. asyncio并发数_Python Futures并发编程详解
  4. 详谈P(查准率),R(查全率),F1值
  5. HTML5高层模块不应该依赖于底层模块
  6. 【英语学习】【Level 08】U03 My Choice L4 The coolest movie character
  7. adam算法效果差原因_电缆耐高温套管使用效果差的原因有哪些?
  8. idea插件开发实战基础
  9. html图片轮播15个自动,15个超强的jQuery/HTML5图片轮播插件
  10. 新手使用PHPCUSTOM打开php文件变下载的原因分析
  11. 基于BP神经网络控制+Simulink双闭环直流调速系统仿真
  12. ECCV 2022 | 基于去遮挡和移除的3D交互双手姿态估计
  13. linux下刻录光盘读取不了_Linux下刻录光盘
  14. win10移动热点按钮打开后立刻自动关闭
  15. 向大家推荐一款可以免费在线Word转pdf,jpg转pdf,ppt转pdf等各种格式转换的网站
  16. 操作系统第七、八章习题
  17. pandas数据分析基础之时间序列
  18. 如何从CRAN上下载R语言程序包
  19. CryptoJS与JSEncrypt 加密算法
  20. flink-streaming-platform-web 源码解读

热门文章

  1. Hadoop的基本概念和简单使用
  2. springboot 的启动流程
  3. oracle主键自动增长
  4. ubuntu 18.04安装米聊
  5. java scanner 类_Java Scanner类
  6. oracle经典增删该查,oracle基本语法(增删改查
  7. java中的case1怎么说_Java 中的 CAS 简述及原理解析
  8. c malloc 头文件_C 数据类型
  9. python字典添加主键_python 字典相关操作
  10. matlab和python哪个好学_python和matlab哪个难