vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)

简介: 这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。

文章目录

  • 1、看实现的效果
  • 2、前端vue页面核心代码
    • 2.1、 表格代码(表格样式可以去elementui组件库直接调用相应的)
    • 2.2、分页组件代码
    • 2.3 、script中的代码
  • 3、后端核心代码
    • 3.1 控制层
    • 3.2 编写的sql语句调用
    • 3.3 、service层 dao层略

1、看实现的效果

在这里插入图片描述
在这里插入图片描述

2、前端vue页面核心代码

2.1、 表格代码(表格样式可以去elementui组件库直接调用相应的)

    <div>
              <el-table
                :data="tableDatas"
                border
                style="width: 100%; height: 450px"
              >
                <el-table-column prop="uid" label="编号" width="100">
                </el-table-column>
                <el-table-column prop="userName" label="姓名" width="100">
                </el-table-column>
                <el-table-column prop="nickName" label="昵称" width="100">
                </el-table-column>
                <el-table-column prop="gender" label="性别" width="100">
                </el-table-column>
                <el-table-column prop="idCard" label="身份证" width="200">
                </el-table-column>
                <el-table-column prop="email" label="邮箱" width="200">
                </el-table-column>
                <el-table-column prop="phone" label="手机号" width="200">
                </el-table-column>
                <el-table-column
                  prop="registerTime"
                  label="注册时间"
                  width="200"
                >
                </el-table-column>
                <el-table-column fixed="right" label="操作" width="200">
                  <template slot-scope="scope">
                    <el-button
                      @click="handleClick(scope.row)"
                      type="text"
                      size="small"
                      >查看</el-button
                    >
                    <el-button type="text" size="small">编辑</el-button>
                  </template>
                </el-table-column>
              </el-table>
            </div>

2.2、分页组件代码

直接放到相应的位置

   <!--分页组件-->
            <div style="text-align: left">
              <el-row>
                <el-col :span="12">
                  <el-pagination
                    style="margin: 15px 0px"
                    background
                    layout="prev, pager, next, jumper, total, sizes"
                    :page-size="size"
                    :current-page="now"
                    :page-sizes="[2, 4, 6, 8]"
                    @current-change="findPage"
                    @size-change="findSize"
                    :total="total"
                  >
                  </el-pagination>
                </el-col>
              </el-row>
            </div>

2.3 、script中的代码

提示:这里的total默认设置为0,否则会出现意想不到的问题(不影响使用、但是看起来难受)
在进行方法调用时,会根据传入的size和page作为参数、再次查询数据库

<script>
export default {
  data() {
    return {
      total: 0,
      now: 1,
      size: 8,
      input2: "",
      tableDatas: [],
    };
  },
  methods: {
    handleClick(row) {
      console.log(row);
    },

    // 第n页信息
    findPage(now_page) {
      //用来处理当前页的方法,page为当前页
      this.now = now_page;
      this.showAllUserInfo(now_page, this.size);
    },
    findSize(now_size) {
      //用来处理每页条数的方法,size为当前页条数
      this.size = now_size;
      this.showAllUserInfo(this.now, now_size);
    },

    // 展示所有的用户信息
    showAllUserInfo(currentPage, pageSize) {
      //异步请求显示所有数据
      currentPage = currentPage ? currentPage : this.now;
      pageSize = pageSize ? pageSize : this.size;
      axios
        .get("user/findAllUser/" + currentPage + "/" + pageSize)
        .then((res) => {
          console.log(res);
          this.tableDatas = res.data.data.result.userList;
          this.total = res.data.data.result.totals;
        });
    },
  },
  created() {
    this.showAllUserInfo();
  },
};
</script>

3、后端核心代码

3.1 控制层

   // 查询所有的用户信息
    @RequestMapping(value = "/user/findAllUser/{page}/{size}",method = RequestMethod.GET)
    public Result findAllUser(@PathVariable("page") Integer page,@PathVariable("size") Integer size){
        //准备数据 通过这两个参数,可以算出start   计算方法 start=size(page-1)
        int currentPage = page;//当前是第几页
        int pageSize = size; //页面大小
        Map<String, Integer> map = new HashMap<String, Integer>();
        map.put("startIndex", (currentPage - 1) * pageSize);
        map.put("pageSize", pageSize);
        List<User> userList = userService.findAllUser(map);
        Long totals = userService.findUserTotals();
        HashMap<String, Object> result = new HashMap<>();
        result.put("userList",userList);
        result.put("totals",totals);
        return  Result.ok().data("result",result);

    }

3.2 编写的sql语句调用

<!--    分页查询所有用户-->
    <select id="findAllUser" parameterType="Map" resultType="com.zyz.bookshopmanage.pojo.User">
        select * from bookshopmanage.tbl_user limit #{startIndex},#{pageSize}
    </select>

3.3 、service层 dao层略

在这里插入图片描述

相关文章
|
11天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
基于Java+Springboot+Vue开发的大学竞赛报名管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的大学竞赛报名管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
25 3
基于Java+Springboot+Vue开发的大学竞赛报名管理系统
|
12天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的蛋糕商城管理系统
基于Java+Springboot+Vue开发的蛋糕商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的蛋糕商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
25 3
基于Java+Springboot+Vue开发的蛋糕商城管理系统
|
12天前
|
前端开发 JavaScript Java
基于Java+Springboot+Vue开发的美容预约管理系统
基于Java+Springboot+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的美容预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
22 3
基于Java+Springboot+Vue开发的美容预约管理系统
|
12天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
5天前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
27 10
|
4天前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
|
10天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
70 5
|
12天前
|
JavaScript 前端开发 Java
一个基于 SpringBoot + Vue 的在线考试系统
【9月更文挑战第24天】这是一个基于 Spring Boot 和 Vue 构建的在线考试系统。后端采用 Spring Boot、Spring Data JPA 和 MySQL 实现快速开发和数据库操作;前端使用 Vue.js 和 Element UI 快速搭建界面。系统包括用户管理、考试管理、考试答题和成绩管理等功能模块,并设计了相应的数据库表结构。通过 RESTful API 实现前后端数据交互,支持多种题型和权限管理,适用于学校和企业等场景。
|
11天前
|
XML JSON Java
springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
本文介绍了在Spring Boot中如何实现文件上传,包括单文件和多文件上传的实现,文件上传的表单页面创建,接收上传文件的Controller层代码编写,以及上传成功后如何在页面上遍历并显示上传的文件。同时,还涉及了`MultipartFile`类的使用和`@RequestPart`注解,以及在`application.properties`中配置文件上传的相关参数。
springboot文件上传,单文件上传和多文件上传,以及数据遍历和回显
|
21天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
下一篇
无影云桌面