侧边栏壁纸
博主头像
Epoch

Java开发、Python爬虫、微服务、分布式、前端

  • 累计撰写 93 篇文章
  • 累计创建 110 个标签
  • 累计收到 8 条评论

目 录CONTENT

文章目录

Spring Boot集成Mybatis--使用分页插件

Epoch
2020-05-30 / 0 评论 / 0 点赞 / 274 阅读 / 1,624 字 / 正在检测是否收录...

目标: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>&nbsp;&nbsp;&nbsp;&nbsp;
                    <a href="page.do?pageNum=${pi.prePage}">上一页</a>&nbsp;&nbsp;&nbsp;&nbsp;
                    <a href="page.do?pageNum=${pi.nextPage}">下一页</a>&nbsp;&nbsp;&nbsp;&nbsp;
                    <a href="page.do?pageNum=${pi.navigateLastPage}">尾页</a>&nbsp;&nbsp;&nbsp;&nbsp;
                    当前${pi.pageNum}/${pi.pages}页,共${pi.total}条
                </td>
            </tr>
        </table>
    </center>
</body>
</html>

显示如下(以下四个按钮皆有效)
G60RAPH.png


名字工程名字虽然是这个springboot-excel,但是里面干货是分页插件,见谅,谢谢

下载链接:springboot-mybatis-pagehelper.rar

0

评论区