springboot结合vue实现增删改查及分页查询

下面是Spring Boot结合Vue.js实现增删改查和分页查询的攻略:

1. 准备工作

  • 安装Java Development Kit (JDK)及Maven
  • 安装Node.js和Vue CLI
  • 创建Spring Boot项目

2. 引入前端框架

在Spring Boot项目中的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>

使用Vue CLI创建一个新的Vue项目,然后将创建的内容放入到Spring Boot项目的/resources/static目录下。

3. 实现增删改查

在Spring Boot中,我们可以使用@RestController注释来定义控制器。以下是一个示例控制器,用于从前端页面接收数据并将其保存到Java列表中:

@RestController
@RequestMapping("/api")
public class UserController {
    private List<User> userList = new ArrayList<>();

    @GetMapping("/users")
    public List<User> getUsers() {
        return userList;
    }

    @PostMapping("/users")
    public void addUser(@RequestBody User user) {
        userList.add(user);
    }

    @PutMapping("/users")
    public void updateUser(@RequestBody User user) {
        for (int i = 0; i < userList.size(); i++) {
            if (userList.get(i).getId() == user.getId()) {
                userList.set(i, user);
                break;
            }
        }
    }

    @DeleteMapping("/users/{id}")
    public void deleteUser(@PathVariable("id") int id) {
        for (int i = 0; i < userList.size(); i++) {
            if (userList.get(i).getId() == id) {
                userList.remove(i);
                break;
            }
        }
    }
}

4. 实现分页查询

我们可以使用Spring Boot提供的Pageable接口和Page实现类来实现分页查询。以下是一个示例方法,用于从前端页面接收分页参数并根据这些参数来执行分页查询:

@GetMapping("/users")
public Page<User> getUsersByPage(@RequestParam("page") int page,
                                 @RequestParam("size") int size) {
    Page<User> pageUser = new PageImpl<>(userList, PageRequest.of(page, size), userList.size());
    return pageUser;
}

在Vue中,我们可以使用Element-UI来实现分页器。以下是一个示例实现:

<template>
  <el-pagination
    :total="total"
    :page-size="pageSize"
    :current-page.sync="currentPage"
    layout="total,prev, pager, next"
    @current-change="handleCurrentChange"
  ></el-pagination>
</template>

<script>
export default {
  name: "Pagination",
  props: {
    total: {
      type: Number,
      required: true,
    },
    pageSize: {
      type: Number,
      required: true,
    },
    onPageChange: {
      type: Function,
      required: true,
    },
  },
  data() {
    return {
      currentPage: 1,
    };
  },
  methods: {
    handleCurrentChange(page) {
      this.currentPage = page;
      this.onPageChange(page);
    },
  },
};
</script>

在调用分页查询API时,我们可以为其提供当前页和页面尺寸参数。页面加载后,我们可以将其值传递给分页器组件。以下是一个示例Vue组件,用于从后端API检索和显示用户数据:

<template>
  <el-table :data="users" style="width: 100%">
    <el-table-column prop="name" label="Name"></el-table-column>
    <el-table-column prop="age" label="Age"></el-table-column>
    <el-table-column prop="address" label="Address"></el-table-column>
    <el-table-column label="Action">
      <template slot-scope="scope">
        <el-button
          type="primary"
          size="small"
          @click="edit(scope.row)"
          >Edit</el-button
        >
        <el-button
          type="danger"
          size="small"
          @click="remove(scope.row.id)"
          >Delete</el-button
        >
      </template>
    </el-table-column>
  </el-table>
  <pagination
    :total="totalElements"
    :page-size="pageSize"
    :on-page-change="getUsers"
  ></pagination>
</template>

<script>
import Pagination from "@/components/Pagination.vue";
export default {
  components: {
    Pagination,
  },
  data() {
    return {
      users: [],
      totalElements: 0,
      currentPage: 1,
      pageSize: 5,
    };
  },
  mounted() {
    this.getUsers();
  },
  methods: {
    getUsers() {
      axios
        .get(`/api/users?page=${this.currentPage - 1}&size=${this.pageSize}`)
        .then((response) => {
          this.users = response.data.content;
          this.totalElements = response.data.totalElements;
        })
        .catch((error) => {
          console.log(error);
        });
    },
    remove(id) {
      axios
        .delete(`/api/users/${id}`)
        .then(() => {
          this.getUsers();
        })
        .catch((error) => {
          console.log(error);
        });
    },
  },
};
</script>

以上是Spring Boot结合Vue.js实现增删改查和分页查询的详细攻略。其中包含了一个控制器、一个分页查询方法和一个Vue组件用于检索和显示数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot结合vue实现增删改查及分页查询 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java使用递归解决算法问题的实例讲解

    下面我将详细讲解一下Java使用递归解决算法问题的实例讲解的完整攻略。 1. 什么是递归? 递归是指在程序设计中,不断地调用自身的函数或过程的方法。Java递归法是一种常用的算法,简单来讲,它就是在方法内部调用自己。 2. 递归的应用场景 递归的应用场景是对问题进行分解,使得问题的规模不断缩小,直到解决问题的规模足够小,可以直接得到解决。 递归的特点是时间复…

    Java 2023年5月19日
    00
  • JSON简介以及用法汇总

    JSON简介 JSON的全称是JavaScript Object Notation,它是一种轻量级的数据交换格式。JSON的特点是易于理解、易于阅读、易于编写、易于解析、易于生成。JSON适用于数据传输和存储,常见于Web应用中与客户端和服务端之间的数据交互。 JSON用法汇总 JSON语法: JSON由两种结构组成: 键值对:一组“键/值”对,使用英文冒号…

    Java 2023年5月26日
    00
  • Java中实现String字符串用逗号隔开

    实现Java中用逗号隔开字符串有多种方法,其中最常见的方法是使用String类提供的split()方法来实现。下面将提供两个示例来说明如何使用split()方法实现用逗号隔开字符串的功能。 示例一:使用split()方法 String str = "apple,banana,orange"; String[] strArr = str.s…

    Java 2023年5月26日
    00
  • Java实现获取小程序带参二维码并保存到本地

    下面是Java实现获取小程序带参二维码并保存到本地的完整攻略。 获取access_token 在调用微信API获取小程序带参二维码之前,我们需要先获取到小程序的access_token。access_token是用来调用微信API接口的唯一凭证,所以我们需要在调用前先获取到它。 获取access_token有两种方式,一种是通过微信公众平台的网站获取,另外一…

    Java 2023年5月23日
    00
  • Java加载与存储指令之ldc与_fast_aldc指令

    Java加载与存储指令之ldc与_fast_aldc指令 在Java语言中,常数池是Java虚拟机处理的一个关键部分。Java字节码在运行时需要加载和存储常量来完成各种操作,Java指令集中就有专门用于加载常量到栈顶或将栈顶的常量存储到局部变量表中的指令。其中ldc指令用于加载常量,而_fast_aldc指令则用于快速加载常量。 ldc和ldc_w指令 ld…

    Java 2023年5月26日
    00
  • 详解jdbc实现对CLOB和BLOB数据类型的操作

    详解JDBC实现对CLOB和BLOB数据类型的操作 什么是CLOB和BLOB CLOB (Character Large OBjects) – 用于存储大文本数据,如文章、博客、新闻等 BLOB (Binary Large OBjects) – 用于存储二进制数据,如图像、音频、视频等 JDBC操作CLOB和BLOB JDBC API提供了对CLOB和BLO…

    Java 2023年5月20日
    00
  • 仅5步搞定Android开发环境部署 Android开发环境搭建教程

    仅5步搞定Android开发环境部署 Android开发环境的搭建是Android开发的必备步骤。随着Android的快速发展,环境的安装和配置变得越来越简单。本教程将在5步之内教您如何快速搭建Android开发环境。 步骤1:安装Java JDK 首先,我们需要安装Java JDK,您可以从以下链接中下载安装程序:https://www.oracle.co…

    Java 2023年5月26日
    00
  • 教你如何写springboot接口 

    教你如何写Spring Boot接口的完整攻略 Spring Boot是一个基于Spring框架的快速开发应用程序的工具。它提供了一种快速、便捷的方式来创建基于Spring的应用程序,同时也提供了一些默认的和约定,使得开发人员可以更加专注于业务逻辑的实现。本文将详细讲解如何使用Spring Boot编写接口,并提供两个示例。 1. 创建Spring Boot…

    Java 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部