springboot前后台数据交互的示例代码

yizhihongxing

下面我来给你详细讲解一下“springboot前后台数据交互的示例代码”的完整攻略。

前后台数据交互的概述

在使用SpringBoot开发Web应用时,我们需要前后台交互数据。为了实现这个目的,我们需要使用一些常见的技术框架: SpringMVC用于处理前台请求,MyBatis用于处理数据库操作,以及HTML、CSS、JavaScript等前端技术。

前后台数据交互的方式很多,常用的有Form表单、Ajax、WebSocket等。Form表单是很早期也是最简单的数据交互方式,但是它有很明显的局限性,比如无法实现异步更新等需求。Ajax技术可以实现异步交互,它不需要刷新整个页面,只需要更新部分页面内容,但是它比较复杂。WebSocket是一种实时通信协议,它可以实现双向数据传输。在这里,我将以Ajax技术为例,讲解SpringBoot中前后台数据交互的实现。

示例1:实现查询用户数据功能

1.创建一个SpringBoot项目,并引入Maven的依赖。

<dependencies>
  <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
  </dependency>
  <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.10</version>
  </dependency>
  <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.46</version>
  </dependency>
</dependencies>

2.配置数据源和MyBatis。

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driverClassName=com.mysql.jdbc.Driver

mybatis.type-aliases-package=com.example.springboot.model
# 指定mapper.xml路径
mybatis.mapper-locations=classpath:mapper/*.xml

3.编写实体类。

public class User {
    private Integer id;
    private String name;
    private Integer age;
    // 省略getter和setter
}

4.编写Mapper接口。

@Mapper
public interface UserMapper {
    List<User> getUsers();
}

5.编写Mapper.xml文件。

<mapper namespace="com.example.springboot.mapper.UserMapper">
    <resultMap id="userMap" type="com.example.springboot.model.User">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="age" column="age" />
    </resultMap>
    <select id="getUsers" resultMap="userMap">
        select * from user
    </select>
</mapper>

6.编写Controller类。

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/users")
    public List<User> getUsers() {
        return userMapper.getUsers();
    }
}

7.编写前端页面。

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>Ajax示例1</title>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
    <table id="userTable">
        <thead>
            <tr>
                <th>ID</th>
                <th>名字</th>
                <th>年龄</th>
            </tr>
        </thead>
        <tbody></tbody>
    </table>
    <script>
        $(document).ready(function() {
            $.ajax({
                url: "/users",
                success: function(users) {
                    var tbody = $("#userTable tbody");
                    $.each(users, function(i, user) {
                        $("<tr></tr>")
                            .append($("<td></td>").text(user.id))
                            .append($("<td></td>").text(user.name))
                            .append($("<td></td>").text(user.age))
                            .appendTo(tbody);
                    });
                }
            });
        });
    </script>
</body>
</html>

8.启动应用,打开浏览器访问"http://localhost:8080",即可看到用户数据列表。

示例2:实现添加用户数据功能

1.添加一个Mapper方法。

@Mapper
public interface UserMapper {
    List<User> getUsers();
    void addUser(User user);
}

2.修改Mapper.xml文件。

<mapper namespace="com.example.springboot.mapper.UserMapper">
    <resultMap id="userMap" type="com.example.springboot.model.User">
        <id property="id" column="id" />
        <result property="name" column="name" />
        <result property="age" column="age" />
    </resultMap>
    <select id="getUsers" resultMap="userMap">
        select * from user
    </select>
    <insert id="addUser">
        insert into user(name, age) values (#{name}, #{age})
    </insert>
</mapper>

3.编写Controller类。

@RestController
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @RequestMapping("/users")
    public List<User> getUsers() {
        return userMapper.getUsers();
    }

    @PostMapping("/users")
    public String addUser(User user) {
        userMapper.addUser(user);
        return "success";
    }
}

4.编写前端页面。

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>Ajax示例2</title>
    <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
    <form>
        <label>名字:</label>
        <input type="text" name="name" required>
        <label>年龄:</label>
        <input type="number" name="age" required>
        <button type="button" id="btnAdd">添加用户</button>
    </form>
    <table id="userTable">
        <thead>
            <tr>
                <th>ID</th>
                <th>名字</th>
                <th>年龄</th>
            </tr>
        </thead>
        <tbody></tbody>
    </table>
    <script>
        $(document).ready(function() {
            $("#btnAdd").click(function() {
                $.ajax({
                    url: "/users",
                    type: "POST",
                    data: $("form").serialize(),
                    success: function(result) {
                        console.log(result);
                        if (result === "success") {
                            loadUsers();
                            $("form")[0].reset();
                        }
                    }
                });
            });
            loadUsers();
        });

        function loadUsers() {
            $.ajax({
                url: "/users",
                success: function(users) {
                    var tbody = $("#userTable tbody");
                    tbody.empty();
                    $.each(users, function(i, user) {
                        $("<tr></tr>")
                            .append($("<td></td>").text(user.id))
                            .append($("<td></td>").text(user.name))
                            .append($("<td></td>").text(user.age))
                            .appendTo(tbody);
                    });
                }
            });
        }
    </script>
</body>
</html>

5.启动应用,打开浏览器访问"http://localhost:8080",即可看到用户数据列表和添加用户表单。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot前后台数据交互的示例代码 - Python技术站

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

相关文章

  • Java反射机制详解

    Java反射机制详解 什么是Java反射 Java反射机制是指在程序运行过程中,通过获取对象的类信息,来操作改变对象的方法和属性。它能够使得程序在运行时才能得到要操作的类的相关信息,而不是在编写代码时就必须确定类的信息。Java反射机制主要由Java.lang.refect 包中的类和接口组成。 反射的优缺点 优点: 运行时动态地操作和处理类的属性和方法,增…

    Java 2023年5月20日
    00
  • SpringBoot项目中处理返回json的null值(springboot项目为例)

    处理返回JSON的null值在Spring Boot中是一个常见的问题。在Spring Boot中,当返回的对象中某个属性的值为null时,默认情况下该属性将不会被包含在JSON响应中,而不是显示为null。如果需要在响应中显示null,则需要进行一些额外的配置。下面是解决这个问题的步骤: 步骤一:将Jackson的ObjectMapper设置为null时也…

    Java 2023年5月26日
    00
  • Oracle JDBC连接BUG解决方案

    下面是详细的“Oracle JDBC连接BUG解决方案”的攻略。 问题描述 使用Java程序连接Oracle数据库时,经常会遇到连接时出现“ORA-12519, TNS:no appropriate service handler found”的错误提示,造成无法连接数据库的情况。这个问题一般出现在高并发的情况下。 原因分析 这个问题的产生是由于Oracle…

    Java 2023年5月23日
    00
  • JavaBean实体类处理外键过程解析

    下面是针对“JavaBean实体类处理外键过程解析”的完整攻略: 1. 概述 在数据库设计中,为了避免数据冗余和提高数据存储效率,通常会使用外键来保证关系完整性。然而,在Java程序中处理外键时,我们通常需要将外键转换成JavaBean实体类中的关联对象。这个过程需要我们对JavaBean实体类进行一定的处理,下面将详细介绍这个过程。 2. 外键的处理方式 …

    Java 2023年5月26日
    00
  • Redis介绍和使用场景详解

    Redis介绍和使用场景详解 什么是Redis Redis是一种高性能的内存数据库,其发展史可以追溯到2009年。Redis支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合,同时还支持事务、持久化和复制等功能。Redis作为一个内存数据库,它的读写速度非常快,被广泛应用在数据缓存、消息队列、计数器等场景中。 Redis的使用场景 缓存 Redis最…

    Java 2023年6月1日
    00
  • java返回json请求中文变成问号的问题及解决

    下面是详细讲解“Java返回JSON请求中文变成问号的问题及解决”的完整攻略: 问题描述 在使用Java后端向前端返回JSON格式数据时,如果数据中包含中文字符,有时候会出现中文字符被转换成问号的情况,造成数据不可读。这个问题通常出现在字符编码设置不正确的情况下。 解决方法 方法一:设置字符编码 设置正确的字符编码可以解决这个问题。在Java中设置字符编码有…

    Java 2023年5月26日
    00
  • Java如何读写Properties配置文件(Properties类)

    下面我将详细讲解“Java如何读写Properties配置文件(Properties类)”的完整攻略。 什么是Properties配置文件 Properties文件是Java中一种非常常用的配置文件格式,它采用Key-Value的形式存储数据,是一种轻量级的配置文件。Properties文件一般用于存储应用程序配置信息,如数据库连接信息、系统配置信息等。 P…

    Java 2023年6月15日
    00
  • Java的Struts框架报错“ForwardConfigException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“ForwardConfigException”错误。这个错误通常由以下原因之一起: 无效的转发路径:如果转发路径无效,则可能会出现此错误。在这种情况下,需要检查转发路径以解决此问题。 无效的转发名称:如果转发名称无效,则可能会出现此错误。在这种情况下,需要检查转发名称以解决此问题。 以下是两个实例: 例 1 如…

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