Spring Boot集成Mybatis--使用分页插件
目标:实现Spring Boot使用easyexcel实现导入导出Excel 工具:IDEA--2020.1 学习目标:Spring Boot使用easyexcel实现导入导出Excel 本次学习的工程下载链接放到文本最后面(含数据库文件)
- 首先新建一个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:
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" %>
<title>Title</title>
</head>
<center>
<a href="/userctrl/page.do">去到分页界面</a>
</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" %>
<title>Title</title>
</head>
<center>
<h1>这里是用户列表信息界面</h1>
<table border="1" width="95%">
<th>编号</th>
<th>姓名(拼音)</th>
<th>姓名(中文)</th>
<th>密码</th>
<th>盐</th>
<th>email</th>
<th>mobile</th>
<%--后面的根据自己需要添加,我这里就不一一添加了--%>
<c:forEach items="${pi.list}" var="u">
<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>
</c:forEach>
<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}条