用SpringBoot简单实现登录注册功能

登录注册

  这是SpringBoot整合MyBatis实现的简易登陆注册。这个demo,我已经上传到资源下载和GitHub仓库了,链接如下:

  资源下载地址:CSDN资源下载
  GitHub仓库地址:Login


文章目录

  • 登录注册
    • 1. 效果展示
      • 1.1 登录页面
      • 1.2 登录成功页面
      • 1.3 登录失败页面
      • 1.4 注册页面
      • 1.5 注册成功页面
      • 1.6 注册失败页面
    • 2. 代码实现部分
      • 2.1 目录结构
      • 2.2 SQL代码
      • 2.3 前端页面代码
      • 2.4 Java 代码
        • 2.4.1 POM树
        • 2.4.2 application.properties
        • 2.4.3 User.java
        • 2.4.3 UserMapper.java
        • 2.4.4 UserMapper.xml
        • 2.4.5 UserService.java
        • 2.4.6 UserController.java
    • 3. 总结



1. 效果展示

1.1 登录页面

用SpringBoot简单实现登录注册功能_第1张图片



1.2 登录成功页面

用SpringBoot简单实现登录注册功能_第2张图片



1.3 登录失败页面

用SpringBoot简单实现登录注册功能_第3张图片


用SpringBoot简单实现登录注册功能_第4张图片


1.4 注册页面

用SpringBoot简单实现登录注册功能_第5张图片


1.5 注册成功页面

用SpringBoot简单实现登录注册功能_第6张图片


1.6 注册失败页面

用SpringBoot简单实现登录注册功能_第7张图片


用SpringBoot简单实现登录注册功能_第8张图片


用SpringBoot简单实现登录注册功能_第9张图片



2. 代码实现部分

2.1 目录结构

用SpringBoot简单实现登录注册功能_第10张图片

2.2 SQL代码

-- 创建数据库
CREATE DATABASE IF NOT EXISTS example CHARACTER SET utf8 ;
USE example;
CREATE TABLE USER(
	id INT PRIMARY KEY AUTO_INCREMENT,
	username VARCHAR(32) UNIQUE NOT NULL,
	password VARCHAR(32) NOT NULL
);
-- 添加数据
INSERT INTO USER VALUES
(1,"admin","111"),
(2,"manager","222"),
(3,"normal","333");

SELECT * FROM user;

2.3 前端页面代码

  1. login.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>logintitle>
head>
<body>
    <form method="post" action="/user/login">
        用户名:<input name="username" type="text"><br>
        密码:<input name="password" type="password"><br>
        <input type="submit" value="登录验证">
        <input type="button" onclick="javascript:window.location.href='regist.html'" value="去注册页面">
    form>
body>
html>
  1. regist.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册title>
head>
<body>
	<form action="/user/regist" method="post">
	    用户名:<input type="text" name="username"><br>
	    密码:<input type="password" name="password"><br>
	    <input type="submit" value="注册验证"><br>
	    <input type="button" onclick="javascript:window.location.href='login.html'" value="返回登录界面">
	form>
body>
html>

2.4 Java 代码

2.4.1 POM树


<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.0modelVersion>
    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.2.1.RELEASEversion>
        <relativePath/> 
    parent>
    <groupId>com.jacksgroupId>
    <artifactId>loginartifactId>
    <version>0.0.1-SNAPSHOTversion>
    <name>loginname>
    <description>login project for Spring Bootdescription>

    <properties>
        <java.version>1.8java.version>
    properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
            <version>8.0.17version>
            <scope>runtimescope>
        dependency>
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>1.3.1version>
        dependency>    
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
            <version>1.1.9version>
        dependency>
        
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintagegroupId>
                    <artifactId>junit-vintage-engineartifactId>
                exclusion>
            exclusions>
        dependency>
    dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>

project>

2.4.2 application.properties

# 数据库连接信息
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/example?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

# 数据库连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.initial-size=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
spring.datasource.maxWait=3000

# mapper映射
mybatis.type-aliases-package=com.jacks.login.pojo
mybatis.mapper-locations=classpath:mapper/*.xml


2.4.3 User.java

package com.jacks.login.pojo;

public class User {
    private Integer id;
    private String username;
    private String password;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", user_name='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
    //getter 和 setter 方法,节约篇幅,这里省略

2.4.3 UserMapper.java

package com.jacks.login.mapper;

import com.jacks.login.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
@Mapper
public interface UserMapper {
    List<User> findAll();
    User findByName(String name);
    String findPswByName(String UserName);
    void save(User user);
}

2.4.4 UserMapper.xml




<mapper namespace="com.jacks.login.mapper.UserMapper">
    <select id="findAll" resultType="User">
        select * from User
    select>
    <select id="findByName" resultType="User">
        select * from User where username = #{username}
    select>
    <select id="findPswByName" resultType="String">
        select password from user where username = #{username}
    select>
    <insert id="save">
        insert into user(username,password) value (#{username},#{password})
    insert>
mapper>

2.4.5 UserService.java

package com.jacks.login.service;

import com.jacks.login.mapper.UserMapper;
import com.jacks.login.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

    @Autowired
    UserMapper userMapper;

    public String login(User user){//TODO:登陆逻辑函数
        try {
            User userExistN = userMapper.findByName(user.getUsername());
            if (userExistN != null){
                String userExistP = userMapper.findPswByName(user.getUsername());
                if (userExistP.equals(user.getPassword())){
                    return user.getUsername()+" 用户登录成功,欢迎您!";
                }else {
                    return "登陆失败,密码错误!";
                }
            }else {
                return "登陆失败,账户不存在";
            }
        }catch (Exception e) {
            e.printStackTrace();
            return e.getMessage();
        }
    }

    public String regist(User user){//TODO:注册判断逻辑函数
        try{
            User userExist = userMapper.findByName(user.getUsername());
            if (user.getUsername().equals("")){
                return "账户名不能为空";
            }else if (user.getPassword().equals("")){
                return "密码不能为空";
            }else if (userExist != null){
                return "账户已经存在";
            }else {
                userMapper.save(user);
                return "注册成功";
            }
        }catch (Exception e){
            e.printStackTrace();
            return e.getMessage();
        }
    }
}

2.4.6 UserController.java

package com.jacks.login.controller;

import com.jacks.login.pojo.User;
import com.jacks.login.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    UserService userService;

    @PostMapping("/login")
    public String login(User user){
        return userService.login(user);
    }

    @PostMapping("/regist")
    public String regist(User user){
        return userService.regist(user);
    }
}

3. 总结

代码的业务逻辑如下:

  1. Mapper负责连接数据库并进行相关的CRUD操作。
  2. Service借助Mapper来完成登录注册的业务逻辑。
  3. Controller接待浏览器访问,借助Service提供登录注册服务。

可以的话点个赞哦~
让我知道这篇博文对你有帮助。

你可能感兴趣的:(JavaDemo)