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日

相关文章

  • 使用@Value为静态变量导入并使用导入的静态变量进行初始化方式

    下面是”使用@Value为静态变量导入并使用导入的静态变量进行初始化方式”的完整攻略。 什么是@Value注解? 在Spring中,@Value注解可以用于从外部文件中加载配置值或者在运行时从环境变量中获取配置值,然后赋值给一个属性或类静态变量。 使用@Value导入静态变量 Spring允许我们使用@Value导入静态变量。只需要在使用该注解时加上静态变量…

    Java 2023年5月19日
    00
  • Spring MVC数据处理和乱码问题详解

    以下是关于“Spring MVC数据处理和乱码问题详解”的完整攻略,其中包含两个示例。 Spring MVC数据处理和乱码问题详解 Spring MVC是一个基于Java的Web框架,它可以帮我们快速开发Web应用程序。在使用Spring MVC时,我们需要处理数据和乱码问题。本文将介绍如何处理Spring MVC中的数据和乱码问题。 数据处理 Spring…

    Java 2023年5月17日
    00
  • java中如何使用MD5进行加密

    下面是详细讲解”Java中如何使用MD5进行加密”的完整攻略。 什么是MD5加密 MD5是一种常用的不可逆的加密算法,它能将任意长度的消息压缩到一个固定长度的摘要(通常是128位),并且是一种不可逆的算法。在计算机领域中,MD5常用于对密码、数字签名、消息摘要等信息进行加密。 Java中如何使用MD5进行加密 Java提供了java.security.Mes…

    Java 2023年5月26日
    00
  • Android编程绘制抛物线的方法示例

    下面是关于“Android编程绘制抛物线的方法示例”的完整攻略及相关示例。 1. 前言 在Android应用程序中,绘制抛物线是常见的需求。在本篇攻略中,将介绍两种绘制抛物线的方法示例。 第一种方法使用Canvas类,对曲线路径进行处理绘制。第二种方法则使用ValueAnimator和PointF类,逐步绘制抛物线。 2. 方法一:使用Canvas类绘制抛物…

    Java 2023年5月26日
    00
  • JSP中out对象的实例详解

    下面是本人为大家准备的详细讲解“JSP中out对象的实例详解”的攻略。 JSP中out对象的实例详解 1. out对象简介 在JSP页面中,out对象是一个内置对象,用于向客户端输出内容。 2. out对象的创建 当在JSP页面中使用语句 out.print(“hello, world”) 时,就会自动创建一个名为 “out” 的输出流对象。 3. out对…

    Java 2023年6月15日
    00
  • spring boot之使用spring data jpa的自定义sql方式

    下面是使用Spring Data JPA的自定义SQL方式的完整攻略。 1. 添加依赖 首先需要在项目中添加Spring Data JPA的依赖。可以在项目的Maven或Gradle配置中添加以下依赖项: <dependency> <groupId>org.springframework.boot</groupId> &l…

    Java 2023年5月20日
    00
  • Java读取并下载网络文件的方法

    以下是详细的“Java读取并下载网络文件的方法”的攻略: 1. 使用Java标准库中的URL和URLConnection类实现 1.1 代码示例 import java.io.InputStream; import java.io.FileOutputStream; import java.net.URL; import java.net.URLConnec…

    Java 2023年5月20日
    00
  • Spring Boot中使用 Spring Security 构建权限系统的示例代码

    下面是详细讲解“Spring Boot中使用 Spring Security 构建权限系统的示例代码”的完整攻略,包含了两条示例: 1. 构建Spring Boot项目 首先,我们需要构建一个Spring Boot项目,可以使用Maven或Gradle来管理依赖并生成项目文件。 在项目中添加以下依赖: <dependency> <group…

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