目标:Spring Boot集成Mybatis–使用分页插件
工具:IDEA–2020.1
学习目标:Spring Boot集成Mybatis–使用分页插件
本次学习的工程下载链接放到文本最后面(含数据库文件)
- 首先新建一个springboot项目,添加相关的依赖
<dependencies> <!--web依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mybatis依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!--开发人员热部署依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <!--mysql依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--小插件依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!--导入导出excel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.6</version> </dependency> <!-- springboot的分页插件可以直接在application.yml直接使用 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> <!-- 解析jsp页面的依赖 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <version>9.0.12</version> </dependency> <!-- jstl依赖配置 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies>
- 本工程中不会使用导入导出excel功能(下片博客文章实现),我们先配置一下我们的配置文件application.yml文件
#tomcat服务器配置 http://localhost:8080/excel server: address: localhost port: 8080 #字符编码设置 servlet: encoding: charset: utf-8 enabled: true force: true context-path: /excel #工程的站点根路径 #配置视图解析器的前缀和后缀 spring: mvc: view: prefix: /WEB-INF/ suffix: .jsp #配置数据源 datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=utf-8 username: root password: root #加载mybatis配置文件 mybatis: #扫描到mybatis中的.xml文件 mapper-locations: classpath:mappers/*.xml #给mybatis开启驼峰命名法则 configuration: map-underscore-to-camel-case: true pagehelper: #分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。你也可以配置helperDialect属性来指定分页插件使用哪种方言。 helper-dialect: mysql # 启用合理化,如果pageNum < 1会查询第一页,如果pageNum > pages会查询最后一页 reasonable: true
- 我们使用插件生成Mybatis的一些实体类和映射文件等,里面没有查询所有的方法,这个我们手搓一个
<select id="selectAll" resultType="com.xmaven.entity.SysUser"> select * from sys_user </select>
-
记得在启动类上加上mapper扫描注解@MapperScan(“com.xmaven.mapper”)
-
编写接口服务
public interface SysUserService { List<SysUser> getAll(); PageInfo<SysUser> selectpage(Integer pageNum, Integer pageSize); }
- 编写接口的实现类
@Service public class SysUserServiceImpl implements SysUserService { @Autowired SysUserMapper sysUserMapper; @Override public List<SysUser> getAll() { return this.sysUserMapper.selectAll(); } @Override public PageInfo<SysUser> selectpage(Integer pageNum, Integer pageSize) { //翻到多少页 PageHelper.startPage(pageNum,pageSize); //取对象 List<SysUser> list = this.sysUserMapper.selectAll(); //放到集合里面 PageInfo<SysUser> pi = new PageInfo<SysUser>(list); return pi; } }
- 手搓一个垃圾的jsp界面,帮助我们跳转
#这个是工具界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <center> <h1> <a href="/userctrl/page.do">去到分页界面</a> </h1> </center> </body> </html>
- 开始写一个控制器帮助我们来实现分页和跳转
@Controller @RequestMapping("/userctrl") public class SysUserController { @Autowired SysUserService sysUserService; @RequestMapping("/page.do") public ModelAndView page(ModelAndView mav,@RequestParam(defaultValue="1")Integer pageNum,@RequestParam(defaultValue="5")Integer pageSize){ PageInfo<SysUser> pageInfo = sysUserService.selectpage(pageNum, pageSize); mav.addObject("pi",pageInfo);//把集合装入模型数据 mav.setViewName("selectpage");//路径:/WEB-INF/selectpage.jsp return mav; } }
- 开始编写一个丑的一笔的一个表格界面
#这个是我们的分页界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>Title</title> </head> <body> <center> <h1>这里是用户列表信息界面</h1> <table border="1" width="95%"> <tr> <th>编号</th> <th>姓名(拼音)</th> <th>姓名(中文)</th> <th>密码</th> <th>盐</th> <th>email</th> <th>mobile</th> <%--后面的根据自己需要添加,我这里就不一一添加了--%> </tr> <c:forEach items="${pi.list}" var="u"> <tr> <td>${u.id}</td> <td>${u.name}</td> <td>${u.nickName}</td> <td>${u.password}</td> <td>${u.salt}</td> <td>${u.email}</td> <td>${u.mobile}</td> </tr> </c:forEach> <tr> <td colspan="8" style="text-align: center;"> <a href="page.do?pageNum=${pi.navigateFirstPage}">首页</a> <a href="page.do?pageNum=${pi.prePage}">上一页</a> <a href="page.do?pageNum=${pi.nextPage}">下一页</a> <a href="page.do?pageNum=${pi.navigateLastPage}">尾页</a> 当前${pi.pageNum}/${pi.pages}页,共${pi.total}条 </td> </tr> </table> </center> </body> </html>
显示如下(以下四个按钮皆有效)
名字工程名字虽然是这个springboot-excel,但是里面干货是分页插件,见谅,谢谢
评论区