Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能

这篇具有很好参考价值的文章主要介绍了Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、实战概述

  • 本次实战,我们深入实践了基于数据库的用户登录功能开发。首先构建了包含id、username和password字段的user表,并初始化了测试数据。接着,在后端Spring Boot项目中集成MySQL数据库驱动与Druid连接池,以及MyBatis持久层框架,通过配置application.yaml文件来指定数据库连接信息。

  • 在模型层,我们保留了User实体类以映射数据库中的用户表结构;在数据访问层,创建了UserMapper接口并使用注解方式编写SQL查询方法,用于根据用户名和密码从数据库获取用户信息。为验证查询逻辑,我们编写了单元测试确保能正确查询到数据库中的用户记录。

  • 服务层上,构建了UserService类,注入UserMapper实例,并封装了一个基于数据库查询的登录方法。最后,在控制器层的LoginController中,通过@Autowired注入UserService,并调整登录处理逻辑,使其调用服务层的登录方法进行实际的身份验证。

  • 在前端Vue项目运行的同时启动后端Spring Boot应用,通过前后端联动测试展示了基于数据库的用户登录功能。用户在前端页面输入用户名和密码,经由跨域请求传递至后端,通过数据库查询验证身份后返回结果,成功实现了根据实际用户数据进行登录的功能,有效提高了系统的安全性与实用性。文章来源地址https://www.toymoban.com/news/detail-789167.html

二、实战步骤

(一)创建数据库

  • 创建login数据库
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

(二)创建用户表

  • 创建用户表user
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
  • 添加用户表记录
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

(三)后端项目引入数据库

1、添加相关依赖

  • 修改pom.xml文件,添加相关依赖
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>net.huawei</groupId>
    <artifactId>LoginDemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>LoginDemo</name>
    <description>LoginDemo</description>
    <properties>
        <java.version>21</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.18</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


  • 刷新项目依赖
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

2、用户实体类保持不变

  • 用户实体类 - User
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
package net.huawei.login.bean;

/**
 * 功能:用户实体类
 * 作者:华卫
 * 日期:2024年01月14日
 */
public class User {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

3、编写应用配置文件

  • 将全局配置文件application.properties更名为application.yaml
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
# 配置服务器
server:
  port: 8888

# 配置数据源
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/login?useSSL=false&useUnicode=true&characterEncoding=UTF-8
    username: root
    password: 903213

    # 配置Druid数据源类型
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      initial-size: 20 # 初始连接数
      min-idle: 10 # 最小空闲连接数
      max-active: 100 # 最大连接数

4、创建用户映射器接口

  • 创建mapper子包,在子包里创建UserMapper接口
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
package net.huawei.login.mapper;

import net.huawei.login.bean.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/**
 * 功能:用户映射器接口
 * 作者:华卫
 * 日期:2024年01月14日
 */
@Mapper // 纳入Spring容器管理
public interface UserMapper {
    @Select("select * from user where username = #{username} and password = #{password}")
    User login(String username, String password);
}
  • 测试用户映射器接口
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
package net.huawei.login;

import net.huawei.login.bean.User;
import net.huawei.login.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class LoginDemoApplicationTests {
    @Autowired // 注入用户映射器Bean
    private UserMapper userMapper;

    @Test
    public void testLogin() {
        // 定义用户名和Miami
        String username = "无心剑";
        String password = "903213";
        // 调用用户映射器登录方法
        User user = userMapper.login(username, password);
        // 判断是否登录成功
        if (user != null) {
            System.out.println("恭喜,[" + username + "]登录成功~");
        } else {
            System.err.println("遗憾,[" + username + "]登录失败~");
        }
    }
}
  • 运行testLogin()测试方法,查看结果
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
  • 修改用户名,再运行testLogin()测试方法,查看结果
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

5、创建用户服务类

  • 创建service子包,在子包里创建UserService
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
package net.huawei.login.service;

import net.huawei.login.bean.User;
import net.huawei.login.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 功能:用户服务类 
 * 作者:华卫
 * 日期:2024年01月14日
 */
@Service // 纳入Spring容器管理
public class UserService {
    @Autowired // 注入用户映射器Bean
    private UserMapper userMapper;

    /**
     * 用户登录方法
     * 
     * @param username
     * @param password
     * @return 用户实体
     */
    public User login(String username, String password) {
        return userMapper.login(username, password);
    }
}

6、修改登录控制器

  • 登录控制器 - LoginController
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
package net.huawei.login.controller;

import net.huawei.login.bean.User;
import net.huawei.login.result.Result;
import net.huawei.login.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.util.HtmlUtils;

/**
 * 功能:登录控制器
 * 作者:华卫
 * 日期:2024年01月14日
 */
@Controller
public class LoginController {
    @Autowired // 注入用户服务Bean
    private UserService userService;
    
    @CrossOrigin
    @PostMapping(value = "/login")
    @ResponseBody
    public Result login(@RequestBody User requestUser) {
        // 获取用户名和密码
        String username = requestUser.getUsername();
        String password = requestUser.getPassword();
        // 对html标签进行转义,防止XSS攻击
        username = HtmlUtils.htmlEscape(username);
        // 调用用户服务对象的登录方法
        User user = userService.login(username, password);
        // 判断登录是否成功
        if (user != null) {
            return new Result(200);
        } else {
            System.out.println("用户名或密码有误!");
            return new Result(400);
        }
    }
}

(四)测试用户登录功能

1、启动前端项目 - login-vue

  • 在前端项目目录里执行命令:npm run serve
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

2、启动后端项目 - LoginDemo

  • 运行入口类 - LoginDemoApplication
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

3、访问前端登录页面

  • 访问http://localhost:8080/login
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

4、测试用户登录功能

  • 输入用户名admin与密码903213
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
  • 单击【登录】按钮
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
  • 输入正确的用户名与密码:无心剑 :903213
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
  • 单击【登录】按钮,跳转到首页
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库
  • 录屏操作演示
    Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能,Spring Boot + Vue,spring boot,vue.js,数据库

三、实战总结

  • 本次实战通过构建数据库用户表,实现了基于Spring Boot和MyBatis的数据库登录验证功能。首先创建了包含必要字段的user表及测试数据,然后在后端配置数据库连接,并利用UserMapper接口与注解SQL实现用户查询。服务层封装了登录方法,在控制器中调用此方法进行身份验证。前端Vue项目与后端联动,输入的用户名和密码经过跨域请求传递至后端,经数据库查询验证后返回结果,成功构建了一个安全、实用的基于数据库用户数据的身份验证系统。

到了这里,关于Spring Boot 3 + Vue 3实战:引入数据库实现用户登录功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于Spring Boot和Vue3的博客平台数据库设计实践

    在构建一个博客平台时,数据库设计是关键的一步。一个合理的数据库设计可以提高数据的一致性、完整性和可用性,从而提高整个平台的稳定性和性能。本篇博客将介绍博客平台的数据库设计,包括实体关系图、表结构设计以及表之间的关系。 1. 实体关系图 实体关系图(

    2023年04月14日
    浏览(54)
  • Spring Boot项目实现无数据库启动

    今天需要创建一个不连接数据库的Spring Boot工程, 结果一切配置好后项目却启动失败, 提示如下: 查询了一下资料, 发现原来Spring Boot启动时是默认是要连接数据库的, 这样一来只需要把数据库的一些配置排除掉就可以了: 重新启动, 项目成功运行了。另外, pom.xml文件中也不要引入

    2024年02月15日
    浏览(51)
  • Spring Boot应用中如何动态指定数据库,实现不同用户不同数据库的场景

    当在 Spring Boot 应用程序中使用Spring Data JPA 进行数据库操作时,配置Schema名称是一种常见的做法。然而,在某些情况下,模式名称需要是动态的,可能会在应用程序运行时发生变化。比如:需要做数据隔离的SaaS应用。 所以,这篇博文将帮助您解决了在 Spring Boot 应用程序中如

    2024年04月26日
    浏览(48)
  • 【Spring Boot】使用XML配置文件实现数据库操作(一)

    SQL映射文件就是我们通常说的mapper.xml配置文件,主要实现SQL语句的配置和映射,同时实现Java的POJO对象与数据库中的表和字段进行映射关联的功能。 1.1 mapper.xml的结构 下面就来详细介绍mapper.xml文件的结构。首先看一个完整的mapper.xml示例:

    2024年02月10日
    浏览(59)
  • Spring Boot + MyBatis-Plus实现数据库读写分离

    🎉Spring Boot + MyBatis-Plus实现数据库读写分离 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:架构设计 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如果文中出现错误,希望

    2024年02月05日
    浏览(70)
  • Spring Boot实现第一次启动时自动初始化数据库

    在现在的后端开发中,只要是运用联系型数据库,信任SSM架构(Spring Boot + MyBatis)已经成为首选。 不过在咱们第一次运转或许布置项目的时分,一般要先手动衔接数据库,履行一个SQL文件以创立数据库以及数据库表格完结 数据库的初始化作业 ,这样咱们的SSM应用程序才能够

    2024年02月03日
    浏览(55)
  • Java(一):创建 Spring Boot 项目并实现连接操作MySQL数据库

    MySQL 命令 Maven 相关地址 下载地址: https://maven.apache.org/ maven配置方法地址: https://developer.aliyun.com/mvn/guide 仓库搜索地址: https://mvnrepository.com/ https://repo.maven.apache.org/ maven 本地配置 conf/settings.xml 下载 idea 并配置本地环境 maven Maven 构建 生命周期 Maven 的构建 生命周期 包括 三

    2024年02月07日
    浏览(69)
  • 【Spring Boot】以博客管理系统举例,完整表述SpringBoot从对接Vue到数据库的流程与结构。

    博客管理系统是一个典型的前后端分离的应用,其中前端使用Vue框架进行开发,后端使用Spring Boot框架进行开发,数据库使用MySQL进行存储。下面是从对接Vue到数据库的完整流程和结构。 对接Vue 在前端Vue应用中,需要访问后端Spring Boot应用的REST API接口,与其进行数据交互。具

    2024年02月11日
    浏览(43)
  • 基于Java的OA办公管理系统,Spring Boot框架,vue技术,mysql数据库,前台+后台,完美运行,有一万一千字论文。

    目录 演示视频 基本介绍 功能结构 论文目录 系统截图 基于Java的OA办公管理系统,Spring Boot框架,vue技术,mysql数据库,前台+后台,完美运行,有一万一千字论文。 系统中的功能模块主要是实现管理员和员工的管理; 管理员:个人中心、普通员工管理、办公文件管理、公共信

    2024年02月10日
    浏览(62)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包