SpringBoot+Vue实现增删改查

这篇具有很好参考价值的文章主要介绍了SpringBoot+Vue实现增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目简述:一个小Demo,这是一个实现了数据的增删改查和分页功能的页面

所用技术:

前端——Vue+Element+JQuery

后端——SpringBoot+Springdata jpa

项目流程:

1、创建项目

选择Spring Initializr,确定项目的名称、位置、依赖、域名、SDK等属性

注意:初学者SDK和JDK不要选择太高了,避免出现一些不必要的BUG或者未了解新的特性

SpringBoot+Vue实现增删改查

点击Next,可以设置Spring Boot版本,同理不要设置的太高了。

同时,在此页面可以导入依赖,本次项目只需要导入三个包:Spring Web——spring框架的核心类;Spring Data JPA——整合数据库操作;MYSQL Driver——数据库驱动

SpringBoot+Vue实现增删改查

2、导入自己的本地依赖

SpringBoot+Vue实现增删改查

导入完成就OK了

3、构建工程结构 

SpringBoot 项目一般外层只有两个文件,pom.xml文件 和src文件夹。

pom.xml文件的内容是Spring的一些依赖配置

src文件夹的内容包括项目的大致结构,点开src文件夹里面包含main文件夹,点开main文件夹是java和resource文件夹。其中java里保存的spring后台的框架,resource中有static文件夹是存放静态页面的地方,application.yml用于连接数据库。

SpringBoot+Vue实现增删改查

 简单介绍下spring框架各个部件的功能:

SpringCrudApplication:它是Spingboot的一个启动类

common:它是一个通用配置文件夹里面包含Result(一个返回json数据的包装类)和WebMvcConfig(用于配置跨域访问)

controller:控制层,控制业务逻辑

service:业务层,控制业务

dao:持久层,主要用于数据库交互

entity:实体层,数组库在项目中的类

4、创建数据库

创建一个数据库表

SpringBoot+Vue实现增删改查

给表中添加一些数据

SpringBoot+Vue实现增删改查

5、实现CRUD功能

框架和数据库表都搭建好了之后,接下来就可以开始实现后台的增删改查了。

(1)首先实现一个与我们创建的表对应的entity实体类。注意,实体类中的每一个字段都要与数据库表的字段对应 

SpringBoot+Vue实现增删改查

 设置实体类中的属性,让属性与数据库中的表属性一一对应,并且实现每一个属性的getter和setter方法。

(2)配置dao接口,完成与数据库的交互

SpringBoot+Vue实现增删改查

 (3)实现Service类

在Spring data JPA中集成了很多操作数据库的方法,我们可以直接拿来使用。

先创建一个Service类,给一个Service注解

SpringBoot+Vue实现增删改查

然后倒入数据库接口

SpringBoot+Vue实现增删改查

 分别实现增删改查的方法:

新增和修改:

SpringBoot+Vue实现增删改查

 删除:

 SpringBoot+Vue实现增删改查

 查询:SpringBoot+Vue实现增删改查

 分页查询:SpringBoot+Vue实现增删改查

自己实现的模糊查询方法:

SpringBoot+Vue实现增删改查

 6、实现后台接口

如果前端要访问后台,那么需要通过接口来拿到访问数据,通过接口的url来进行操作

创建Controller类,作为接口访问层

SpringBoot+Vue实现增删改查

 引入userService

SpringBoot+Vue实现增删改查

 新增用户

SpringBoot+Vue实现增删改查

更新用户

SpringBoot+Vue实现增删改查

 删除用户

SpringBoot+Vue实现增删改查

根据id查询

SpringBoot+Vue实现增删改查

根据用户名模糊查询

SpringBoot+Vue实现增删改查

7、实现前端的页面

后台的工作已经大致完成了,接下来就来完成前端的页面的展示了.

将前端框架组件导入到static文件夹

SpringBoot+Vue实现增删改查

 在index.html页面完成页面。

以下是index.html代码展示:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户信息</title>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="element.css">
</head>
<body>
<div id="app" style="width: 80%; margin: 0 auto">
    <h2>用户信息表</h2>

    <el-row>
        <el-col :span="6" style="margin-bottom: 10px">
            <el-button type="primary" @click="add">新增</el-button>
            <el-input v-model="name" style="width: 70%" @keyup.enter.native="loadTable(1)"></el-input>
        </el-col>
    </el-row>

    <el-table
            :data="page.content"
            stripe
            border
            style="width: 100%">
        <el-table-column
                prop="name"
                label="用户名"
        >
        </el-table-column>
        <el-table-column
                prop="age"
                label="年龄"
                width="180">
        </el-table-column>
        <el-table-column
                prop="sex"
                label="性别">
        </el-table-column>
        <el-table-column
                prop="address"
                label="地址">
        </el-table-column>
        <el-table-column
                prop="phone"
                label="电话">
        </el-table-column>
        <el-table-column
                fixed="right"
                label="操作"
                width="100">
            <template slot-scope="scope">
                <el-button type="primary" icon="el-icon-edit" size="small" circle @click="edit(scope.row)"></el-button>
                <el-button type="danger" icon="el-icon-delete" size="small" circle @click="del(scope.row.id)"></el-button>
            </template>
        </el-table-column>
    </el-table>
    <el-row type="flex" justify="center" style="margin-top: 10px">
        <el-pagination
                layout="prev, pager, next"
                :page-size="pageSize"
                :current-page="pageNum"
                @prev-click="loadTable"
                @current-change="loadTable"
                @next-click="loadTable"
                :total="page.totalElements">
        </el-pagination>
    </el-row>

    <el-dialog
            title="用户信息"
            :visible.sync="dialogVisible"
            width="30%">
        <el-form ref="form" :model="form" label-width="80px">
            <el-form-item label="用户名">
                <el-input v-model="form.name"></el-input>
            </el-form-item>
            <el-form-item label="年龄">
                <el-input v-model="form.age"></el-input>
            </el-form-item>
            <el-form-item label="性别">
                <el-radio v-model="form.sex" label="男">男</el-radio>
                <el-radio v-model="form.sex" label="女">女</el-radio>
            </el-form-item>
            <el-form-item label="地址">
                <el-input v-model="form.address"></el-input>
            </el-form-item>
            <el-form-item label="电话">
                <el-input v-model="form.phone"></el-input>
            </el-form-item>
        </el-form>
        <span slot="footer" class="dialog-footer">
            <el-button @click="dialogVisible = false">取 消</el-button>
            <el-button type="primary" @click="save">确 定</el-button>
        </span>
    </el-dialog>

</div>

<script src="jquery.min.js"></script>
<script src="vue.js"></script>
<!-- 引入组件库 -->
<script src="element.js"></script>

<script>
    new Vue({
        el: '#app',
        data: {
            page: {},
            name: '',
            pageNum: 1,
            pageSize: 8,
            dialogVisible: false,
            form: {}
        },
        created() {
            this.loadTable(this.pageNum);
        },
        methods: {
            loadTable(num) {
                this.pageNum = num;
                $.get("/user/page?pageNum=" + this.pageNum + "&pageSize=" + this.pageSize + "&name=" + this.name).then(res => {
                    this.page = res.data;
                });
            },
            add() {
                this.dialogVisible = true;
                this.form = {};
            },
            edit(row) {
                this.form = row;
                this.dialogVisible = true;
            },
            save() {
                let data = JSON.stringify(this.form);
                if (this.form.id) {
                    // 编辑
                    $.ajax({
                        url: '/user',
                        type: 'put',
                        contentType: 'application/json',
                        data: data
                    }).then(res => {
                        this.dialogVisible = false;
                        this.loadTable(1);
                    })
                } else {
                    // 新增
                    $.ajax({
                        url: '/user',
                        type: 'post',
                        contentType: 'application/json',
                        data: data
                    }).then(res => {
                        this.dialogVisible = false;
                        this.loadTable(1);
                    })
                }
            },
            del(id) {
                $.ajax({
                    url: '/user/' + id,
                    type: 'delete',
                    contentType: 'application/json'
                }).then(res => {
                    this.loadTable(1);
                })
            }
        }
    })
</script>
</body>
</html>

项目展示:

SpringBoot+Vue实现增删改查

 该页面实现了对数据的添加,删除,更新,查询以及分页的功能。同时也与数据库建立了实时的更新关系SpringBoot+Vue实现增删改查

这样这个增删改查的小Demo就完成了!

结语:坚定目标,日日精进,必有所成。共勉! !文章来源地址https://www.toymoban.com/news/detail-430759.html

到了这里,关于SpringBoot+Vue实现增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot+Mybatis-Plus实现增删改查(配视频讲解)--项目阶段1

    目录 一、介绍 视频讲解 二、前期准备工作 (一) 创建springboot项目和创建数据库 三、项目配置 (一)pom.xl导入相关依赖  1.导入依赖 (二)yml文件中配置连接数据库 2.配置yml文件  四、代码的编写 数据库展示 项目提前展示!!! (三)MySQL表绑定到spring boot(实体层)

    2024年02月11日
    浏览(30)
  • 整合vue elementui springboot mybatisplus前后端分离的 简单增加功能 删改查未实现

    涉及知识点 1.springboot项目启动创建  配置yml文件 2.mybatisplus的使用 3.vue的vite文件配置 4.vue springboot 前后端数据交互 1.建立项目的配置文件 src/main/resources/application.yml 2.建立项目 pom.xml 3.建立数据库表 4.建立实体类 cn.webrx.pojo.User 5.建立项目入口程序App cn.webrx.App 6.建立sevices axi

    2024年02月07日
    浏览(50)
  • Vue项目通过node连接MySQL数据库并实现增删改查操作

    1.创建Vue项目 Vue项目创建的详细步骤,有需要的可移步这里 2.下载安装需要的插件 下载express 下载cors,用于处理接口跨域问题 下载mysql 下载axios 3.在项目中创建server文件夹,用于搭建本地服务器 新建/server/app.js,用于配置服务器相关信息 新建/server/db/index.js,用于配置数据库

    2024年02月16日
    浏览(65)
  • SWE-Agent 这是针对本地模型的新人工智能一个开源项目

    完全自主的编码代理,可以解决 GitHub 问题。 它在编码基准测试中的得分几乎与 Devin 一样高。 这是完整的评论和教程。 SWE-agent 将 LM(例如 GPT-4)转变为软件工程代理,可以修复真实 GitHub 存储库中的错误和问题。 🎉 在完整的 SWE-bench 测试集上,SWE-agent 修复了 12.29% 的问题

    2024年04月26日
    浏览(44)
  • SpringBoot结合Vue.js+axios框架实现增删改查功能+网页端实时显示数据库数据(包括删除多条数据)

    本文适用对象:已有基础的同学,知道基础的SpringBoot配置和Vue操作。 在此基础上本文实现基于SpringBoot和Vue.js基础上的增删改查和数据回显、刷新等。 实现步骤: 第1步:编写动态请求响应类:在启动类同父目录下创建controller包,在包下创建DataController类,添加@RestController、

    2024年02月04日
    浏览(50)
  • 用springboot mybatis写一个增删改查

    首先,在pom.xml文件中添加Spring Boot、MyBatis和MySQL的相关依赖: 接下来,创建一个实体类User.java代表用户信息: 然后,创建一个Mapper接口UserMapper.java用于定义增删改查的方法: 接着,在resources目录下创建一个mapper目录,并在该目录下创建UserMapper.xml文件,配置具体的SQL语句:

    2024年01月16日
    浏览(40)
  • 【Java-SpringBoot+Vue+MySql】Day2-第一个SpringBoot项目应用

    目录 一、初步了解SpringBoot 二、创建第一个SpringBoot项目  三、配置MyBatis数据源 四、创建启动类  五、MVC设计模式 六、SpringBoot整合应用  (1)创建一个实体类  (2)创建DAO接口  (3)创建mapper(映射)模板  (4)创建数据库映射  (5)实现接口  (6)实现控制层  (7)

    2024年02月09日
    浏览(47)
  • 通过宝塔面板部署一个SpringBoot+Vue前后端分离项目的指南(三更)

    阿里云服务器-FinalShell-宝塔面板。 近期需要将自己的一个SpringBoot+Vue前后端分离项目,并且是分模块开发的项目部署到服务器上,记录一下踩坑的地方,结合C站大佬的解决方案,循循善诱一步步部署到服务器上,简单,快速! 购买服务器,阿里云,腾讯云,华为云等,24周岁

    2024年02月03日
    浏览(64)
  • SpringBoot+Vue实现一个系统登录功能

    1. 创建一个Spring Boot项目,添加Web和Security依赖。 2. 创建一个User实体类,用于存储用户信息。 3. 创建一个UserDetailsService接口的实现类,用于加载用户信息。 4. 创建一个WebSecurityConfig类,继承WebSecurityConfigurerAdapter,并重写configure方法,配置SpringSecurity。 5. 在Vue项目中创建一个

    2024年01月15日
    浏览(36)
  • 简述vue项目中的两种请求方式(axios和vueResource)

    今天学习了vue的两种发送请求的方式,vueResource和axios,比较了两种方式的使用 VueResource模块发送请求 1. VueResource概述 VueJS的生态圈除了VueRouter之外,还有很多的插件,在网络请求中,vue是借助于vue-resource模块来进行异步请求,跨域请求。 vue-resource是Vue.js的一款插件,它可以

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包