返回顶部
首页 > 资讯 > 前端开发 > VUE >SpringBoot+VUE实现数据表格的实战
  • 697
分享到

SpringBoot+VUE实现数据表格的实战

2024-04-02 19:04:59 697人浏览 安东尼
摘要

目录前言使用的开发工具:一、前端准备1. 基础界面2. 导入js文件二、后端准备1. 创建实体类2. Controller层3. Service层4. Mapper层三、前后端整合四

前言

还记得第一次做项目时,因为不会将数据库表中的数据渲染到前端而头疼,最后还是靠layui提供的数据表格api实现了前端数据表格的渲染。一直到现在做了很多SpringBoot项目、SSM项目之后,现在返回头来看这个曾经这个让我备受折磨的问题,脑海中下意识就会想到很多种解决的方法,比如导入前端的数据表格、通过javascript渲染数据表格、通过Vue来渲染数据表格…本文将使用VUE+springBoot+mybatisPlus,以前后端分离的形式来实现数据表格在前端的渲染,在此做下记录,便于以后进行回顾。

使用的开发工具

  • 前端:HBuilderX
  • 后端:IntelliJ idea

本次要进行渲染的数据库内容如下:

在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

一、前端准备

1. 基础界面

在前端先将页面写好,在这里我按照数据库表格中的字段顺序依次填写


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>showDataList</title>
	</head>
	<body>
		<div id="app" align="center">
			<table border="1" width="48%" style="text-align: center;">
				<tr>
					<td colspan="5">
						<h1>用户列表</h1>
					</td>
				</tr>
				<tr>
					<td>编号</td>
					<td>姓名</td>
					<td>性别</td>
					<td>年龄</td>
				</tr>
			</table>
		</div>
	</body>
</html>

显示效果:

在这里插入图片描述

2. 导入JS文件

在这里我导入了VUE和AxiOS的JS文件,在HTML的<head>标签中引入相应的JS文件 (axios起的作用和Ajax是相同的,使用axios是因为在做项目的过程中axios相较于Ajax来说很好的解决了回调地狱的问题)


<script src="static/js/vue.js"></script>
<script src="static/js/axios.js"></script>

导入了JS文件后,准备<script>标签用来准备VUE对象和axios进行数据传输
<script>标签中的代码如下:


<script>
		// 设定axios的请求前缀
		axios.defaults.baseURL = "Http://localhost:8090"

		// 指定VUE的渲染区域
		const app = new Vue({
			el: "#app",
			data: {

			},
			methods: {

			}
		})
	</script>

代码解释:


axios.defaults.baseURL = "http://localhost:8090"

在前后端分离的项目中,前端每一次向后端传输数据时都要指定HTTP协议以及端口号,这行代码定义了请求前缀之后axios传输数据时都默认加上了双引号中的内容


const app = new Vue({...})

这段代码中指定了VUE要渲染的区域,el对应内容是id为app的div图层,data为指定数据的区域methods为定义方法的区域

二、后端准备

新建SpringBoot项目并配置MybatisPlus,配置MybatisPlus的过程就不在此赘述

1. 创建实体类

在后端pojo包下新建User实体类,实体类中的属性要与数据库中的字段对应一致


@Data
@Accessors(chain = true)
@TableName("demo_user")
public class User implements Serializable {
    @TableId(type = IdType.AUTO)
    private Integer id;
    // 如果属性与字段同名(包括驼峰规则)注解可以省略
    private String name; 
    private Integer age;
    private String sex;
}

代码解释:

  • @Data为lombok插件提供的注解,自动为属性提供了get/set/toString等方法
  • @Accessors(chain = true)也是lombok插件提供的注解,开启链式编程
  • @TableName("demo_user")为MybatisPlus提供的注解,用于指定该实体类对应数据中的哪张表
  • @TableId(type = IdType.AUTO)用来指定实体类中的哪个属性作为表中的主键,并且主键自增实现了
  • Serializable接口的作用是将该实体类序列化,将实体类序列化的目的是为了保证数据在传输的过程中不会出错

2. Controller层

在创建好实体类后,开始写Controller层的代码


@RestController
@CrossOrigin
@RequestMapping("/table")
public class TableController {
    @Autowired
    private UserService userService;
	
	@GetMapping("/getAllUser")
    public List<User> getAllUser() {
        List<User> userList = userService.selectAll();
        return userList;
    }
}

代码解释:

  • 在Controller层中添加@CrossOrigin注解的作用是支持跨域
  • @RestController相当于@Controller@ResponseBody两个注解的结合,将后端的数据以JSON串的格式返回到前端

3. Service层

①. UserService接口


public interface UserService {
    
    List<User> selectAll();
}

②. UserServiceImpl实现类


@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    
    @Override
    public List<User> selectAll() {
        List<User> userList = userMapper.selectList(null);
        return userList;
    }
}

在MybatisPlus中,selectList方法的参数为空时会查询当前表中的所有数据

4. Mapper层

①. UserMapper接口


public interface UserMapper extends BaseMapper<User> {

}

②. UserMapper.xml文件


<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.shijimo.mapper.UserMapper">
    
</mapper>

在MybatisPlus中sql语句可以自动生成

三、前后端整合

完成前端和后端的基本配置之后,接下来进行前后端分离项目的整合,在进行整合时先对实现过程进行分析
1. 当用户点击显示表格按钮时就应该发起Ajax请求获取userList数据
2. 将UserList中的数据在页面中展现(页面中的数据必须在data中定义
3. 将请求的结果赋值给data属性
4. 利用v-for指令实现数据的遍历

<script>代码块中VUE的代码进行编辑:
因为后端的返回值是一个集合,所以首先在data数据域中定义userList数组对象用来接收从后端传来的集合,接着在methods方法区域中定义一个方法getUserList,该方法中要进行axios向后端发起请求,并将返回的数据存储到数组对象中。在HTML的<table>标签中添加一个按钮组件,为按钮绑定getUserList方法。

添加完按钮组件之后,在<table>标签中也添加<tr>标签,使用VUE中的v-for指令来对userList集合进行遍历,依次取出并进行渲染。


<script>
	// 设定axios的请求前缀
	axios.defaults.baseURL = "http://localhost:8090"

	// 指定VUE的渲染区域
	const app = new Vue({
		el: "#app",
		data: {
			// 定义集合来存储数据, 此时数据为null
			userList: []
		},
		methods: {
			// 1. 定义getUserList方法 获取后台服务器数据
			async getUserList() {
				// 新增操作请求的类型: post	接收时需要使用JSON方式处理
				let {
					data: result
				} = await axios.get("/table/getAllUser")
				// ajax调用之后, 将请求结果赋值给data属性
				this.userList = result
			}
		}
	})
</script>

<table border="1" width="48%" style="text-align: center;">
	<tr>
		<td colspan="5">
			<h1>用户列表</h1>
		</td>
	</tr>
	<tr>
		<td colspan="5" style="text-align: left;">
			<button type="button" @click="getUserList">显示表格</button>
		</td>
	</tr>
	<tr>
		<td>编号</td>
		<td>姓名</td>
		<td>性别</td>
		<td>年龄</td>
	</tr>
	<tr v-for="user in userList">
		<td v-text="user.id"></td>
		<td v-text="user.name"></td>
		<td v-text="user.sex"></td>
		<td v-text="user.age"></td>
	</tr>
</table>

代码解释:
在这里使用v-text指令不使用插值表达式(即{{}})的原因是因为如果传输的数据很多的话,在没有显示完之前页面上会显示{{XXX}},不利于浏览器的安全
至此前后端整合完毕。

四、运行结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

表中的内容就全部显示在了前端,最后再用bootstrap进行修饰美化

在这里插入图片描述

总结

以上就是使用SpringBoot + VUE + Mybatis实现了数据表格的渲染,更多相关SpringBoot+VUE数据表格内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot+VUE实现数据表格的实战

本文链接: https://lsjlt.com/news/131655.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • SpringBoot+VUE实现数据表格的实战
    目录前言使用的开发工具:一、前端准备1. 基础界面2. 导入JS文件二、后端准备1. 创建实体类2. Controller层3. Service层4. Mapper层三、前后端整合四...
    99+
    2024-04-02
  • SpringBoot+VUE怎么实现数据表格
    这篇文章主要讲解了“SpringBoot+VUE怎么实现数据表格”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot+VUE怎么实现数据表格”吧!目录前言使用的开发工具:一、前...
    99+
    2023-06-20
  • vue实现下拉框筛选表格数据
    本文实例为大家分享了vue实现下拉框筛选表格数据的具体代码,供大家参考,具体内容如下 html中: //下拉框          <el-form-item label="选择...
    99+
    2024-04-02
  • vue+element表格实现多层数据的嵌套方式
    目录vue+element表格实现多层数据嵌套这是完成之后的方法  vue+element表格实现多层数据嵌套 今天用element的表格渲染了商城的购物车列表,...
    99+
    2024-04-02
  • vue实现树形表格
    本文实例为大家分享了vue实现树形表格的具体代码,,供大家参考,具体内容如下 效果如下: 居中的图片: 代码如下: <template> <div cla...
    99+
    2024-04-02
  • vue element实现表格增加删除修改数据
    本文实例为大家分享了vue element实现表格增加删除修改数据的具体代码,供大家参考,具体内容如下 这里用到是设置一个弹出框来实现此功能,还有一种方法是直接在原来的基础上面进行修...
    99+
    2024-04-02
  • java实现表格数据的存储
    本文实例为大家分享了java实现表格数据存储的具体代码,供大家参考,具体内容如下 一、二维数组实现表格数据的存储 import java.util.Arrays; publ...
    99+
    2024-04-02
  • jQuery实现表格的数据拖拽
    jQuery实现将一个ant-table的数据拖拽复制到另一个ant-table,供大家参考,具体内容如下 需求 1、ant-design-vue2、将一个嵌套在drawer中的ta...
    99+
    2024-04-02
  • SpringBoot+VUE实现前后端分离的实战记录
    一,前端VUE项目 这里使用VUE UI创建一个VUE项目 命令行输入vue ui进入 手动配置项目 选中这三个 点击下一步->点击创建项目 用IDEA打开刚才创建的项目...
    99+
    2024-04-02
  • DMap(谛听)—实战Vue百万条数据渲染表格组件开发
    DMap(谛听)是一个实战Vue百万条数据渲染表格组件开发项目。该项目旨在展示如何使用Vue开发高性能的表格组件,能够处理大量数据的...
    99+
    2023-09-20
    Vue
  • Vue实现数据导出导入实战案例
    目录前言1、创建一个空白的vue2/vue3项目2、创建Export.vue 示例文件总结前言 项目开发当中,列表数据的导出功能基本是每个业务系统必备的功能、另外Excel数据批量导...
    99+
    2023-01-09
    vue实现导入导出 vue文件导入导出 vue怎么导出
  • SpringBoot+Vue实现数据添加功能
    一、添加代码生成器 用来自动为数据库映射类建立:mapper、service、controller 注:代码生成器的写法,参考官方文档:https://mp.baomidou.co...
    99+
    2024-04-02
  • Vue表格首列相同数据合并实现方法
    目录前言表格首列相同数据合并1. 添加文件2. 添加路径3. 查看效果前言 本篇来学习下table表格中合并首列相同数据的实现方法 表格首列相同数据合并 1. 添加文件 1.src/...
    99+
    2023-05-16
    vue合并table表格 vue表格相同数据合并 vue相同合并
  • 《springboot中实现excel表格导出》
    《springboot中实现excel表格导出》 简介 在Spring Boot中,实现Excel表格导出的方式有很多种,以下是几种常见的方法: 使用Apache POI:Apache POI是一个开源的Java API,用于处理Micro...
    99+
    2023-08-23
    spring boot excel java
  • vue实现滚动加载的表格
    目录实现效果滚动加载知识储备 组件封装 1. 组件命名 2. 提供的props 3.使用举例 组件封装总结 1.尽可能地使用computed计算属性 2.给表格提供插槽 另一种滚动加...
    99+
    2024-04-02
  • Vue+Element实现表格单元格编辑
    前言 Element的表格组件并没有给出明确的点击单个单元格进行的编辑的方案,我仔细阅读了官方的文档后,发现这个操作还是可以实现的。 实现原理 1、利用Table组件的cell-cl...
    99+
    2024-04-02
  • springboot整合mybatis实现多表查询的实战记录
    目录什么是mybatis1、一对一查询(例一个用户一个账户)1.1、实体类1.2、数据库表1.3、持久层接口2、一对多查询(例一个用户对应多个账户)2.1、实体类2.2、数据库表2....
    99+
    2024-04-02
  • Vue实现下拉表格组件
    本文实例为大家分享了Vue实现下拉表格组件的具体代码,供大家参考,具体内容如下 <template>   <div>     <div class="s...
    99+
    2024-04-02
  • vue实现表格分页功能
    本文实例为大家分享了vue实现表格分页功能的具体代码,供大家参考,具体内容如下 直接上代码: 这里是这里是template部分,主要由一个需要分页的表格和一个分页器组成。重点在于表格...
    99+
    2024-04-02
  • vue如何实现表格分页
    Vue可以通过以下步骤来实现表格分页:1. 在Vue组件中定义一个表格数据数组,例如`tableData`,用于存储所有的表格数据。...
    99+
    2023-08-09
    vue
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作