IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能

下面我将为您详细讲解“IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能”的完整攻略。

环境准备

首先,我们需要在本地环境中安装好如下软件:

  • JDK、IDEA、Maven、MySQL等开发环境
  • SpringBoot、MyBatis、MySql等相关依赖包

创建SpringBoot项目

步骤如下:

  1. 打开IDEA,选择 Create New Project ,选择 Spring Initializr,点击 Next

  2. 在弹出的界面中选择 WebMySqlThymeleaf等相关依赖,点击 Next

  3. 给项目起一个名字,选择项目的存储位置,点击 Finish

  4. 等待IDEA自动下载所需依赖包,并将这些依赖添加到项目的 pom.xml文件中。

配置数据库

为了让我们的SpringBoot应用程序能够连接MySQL数据库,我们需要进行相关的配置。

  1. 打开项目中的 application.properties 文件,添加如下内容:
spring.datasource.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

注:上述代码的 数据库名用户名密码 等需要修改为实际的值,这里仅供参考。

  1. 新建一个名为 User的实体类,用于存储用户的注册信息,代码如下:
public class User {
    private Integer id;          // 用户ID
    private String username;    // 用户名
    private String password;    // 密码
    private String email;       // 邮箱

    // getter和setter方法省略
}
  1. 新建一个名为 UserMapper 的接口类,用于将用户的注册信息映射到MySQL数据库中,代码如下:
@Mapper
public interface UserMapper {
    void save(User user);                 // 新增用户
    User findByUsername(String username); // 根据用户名查询用户
}
  1. 新建一个名为 UserMapper.xml的映射文件,用于定义查询语句和SQL语句,代码如下:
<?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="com.example.demo.mapper.UserMapper">
    <!-- 新增用户 -->
    <insert id="save">
        insert into User (username, password, email)
        values(#{username}, #{password}, #{email})
    </insert>

    <!-- 根据用户名查询用户 -->
    <select id="findByUsername" resultType="User">
        select *
        from User
        where username = #{username}
    </select>
</mapper>

编写Controller代码

  1. 新建一个名为 UserController 的控制器,用于处理用户注册、登录等逻辑。其代码如下:
@Controller
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/login")
    public String login(){
        return "login";
    }

    @GetMapping("/register")
    public String register(){
        return "register";
    }

    @PostMapping("/register")
    public String register(User user){
        userMapper.save(user);
        return "redirect:/login";
    }

    @PostMapping("/login")
    public String login(String username, String password, HttpSession session){
        User user = userMapper.findByUsername(username);
        if(user != null && user.getPassword().equals(password)){
            session.setAttribute("user", user);
            return "redirect:/index";
        }
        return "redirect:/login";
    }

}
  1. 新建一个名为 login.html 的登录页面,代码如下:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>登录页面</title>
</head>
<body>
<h1>登录页面</h1>

<form action="/login" method="post">
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    <button type="submit">登录</button>
</form>

</body>
</html>
  1. 新建一个名为 register.html 的注册页面,代码如下:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>注册页面</title>
</head>
<body>
<h1>注册页面</h1>

<form action="/register" method="post">
    用户名:<input type="text" name="username"/><br/>
    密码:<input type="password" name="password"/><br/>
    邮箱:<input type="text" name="email"/><br/>
    <button type="submit">注册</button>
</form>

</body>
</html>

测试运行

  1. 配置好MySQL数据库,并在其中创建一个名为 user 的数据表。

创建语句如下:

CREATE TABLE `user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `password` varchar(50) NOT NULL COMMENT '密码',
  `email` varchar(50) DEFAULT NULL COMMENT '用户邮箱',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
  1. 运行SpringBoot项目,在浏览器中输入 http://localhost:8080/register进入注册页面,填写相关信息完成注册。

  2. 登录成功后,系统跳转到首页。

以上就是实现SpringBoot+MyBatis+MySQL通过动态注册和登录功能的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:IDEA下创建SpringBoot+MyBatis+MySql项目实现动态登录与注册功能 - Python技术站

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

相关文章

  • Spring Boot 2和Redis例子实现过程解析

    Spring Boot2和Redis例子实现过程解析 Redis是一个高性能的键值存储系统,常用于缓存、消息队列等场景。在Spring Boot应用程序中,我们可以使用Spring Data Redis来快速开发Redis相关的应用程序。本文将详细讲解Spring Boot2和Redis例子实现过程解析,并提供两个示例。 1. 添加Redis依赖 在pom.…

    Java 2023年5月15日
    00
  • Java实现动态创建类操作示例

    动态创建类是在运行时期间动态地生成类。Java提供了反射API来支持动态类的创建、修改和使用。在本文中,我们将详细讲解Java实现动态创建类的操作步骤和示例。 准备 在第一步中,需要“准备”一些必要的工具和环境。Java提供了三个主要的API来支持动态创建类:java.lang.ClassLoader、java.lang.Class和java.lang.re…

    Java 2023年5月19日
    00
  • 利用Java如何获取Mybatis动态生成的sql接口实现

    获取Mybatis动态生成的sql接口实现,需要使用到 Mybatis 的反射机制。以下是具体的操作步骤: 步骤一:定义接口 首先,我们需要在 Mybatis 中定义一个 Mapper 接口,这个接口的方法要跟我们要获取的实现方法一致,例如查询方法: public interface UserMapper { List<User> getUser…

    Java 2023年5月20日
    00
  • Java线程通信之wait-notify通信方式详解

    针对题目“Java线程通信之wait-notify通信方式详解”的完整攻略,以下是详细讲解。 标题 在文章中,应该清晰地使用标题来分隔内容,以便读者可以快速浏览和导航整篇文章。 介绍 在这个部分,我们将简要介绍Java中的线程通信和wait-notify通信方式。线程通信是指多个线程之间的协作和通信,为了互相通信和协调,线程需要一些机制,而wait-noti…

    Java 2023年5月19日
    00
  • Java杂谈之类和对象 封装 构造方法以及代码块详解

    Java杂谈之类和对象 封装 构造方法以及代码块详解 类和对象 Java是面向对象编程的语言,类是Java强大的概念之一。类是一组字段和方法的集合,用于表示某些相关的状态和行为。 在Java中,对象是类的实例。对象是通过类构造函数创建的,类构造函数定义了如何创建对象。按照惯例,类名应该以大写字母开头。 在Java中,类可以有任意数量的方法和成员,这些方法和成…

    Java 2023年5月26日
    00
  • 微信小程序中转义字符的处理方法

    当在微信小程序中使用文本时,可能会遇到需要处理特殊字符的情况,例如 HTML 中的 <, > ,& 等字符。这些字符可能会干扰浏览器的解析,导致不良的显示效果或安全问题。因此,在小程序中需要对这些字符进行转义,使之具有普通文本的意义而不被解析。 常见的转义字符有以下几种: & 符号转义为 &amp; < 符号转义为 …

    Java 2023年5月23日
    00
  • ajax跳转到新的jsp页面的方法

    当用户在网页中进行某些操作,需要展示新的内容时,可以通过跳转到新的jsp页面来实现。Ajax技术可以使这个过程更加流畅和无感知。下面,我将详细讲解“ajax跳转到新的jsp页面的方法”的完整攻略。 1. 前端实现 1.1 创建按钮或链接 首先,在前端页面中添加一个按钮或链接,当点击这个按钮或链接时,将使用Ajax技术跳转到新的jsp页面: <butto…

    Java 2023年6月15日
    00
  • java开发之闹钟的实现代码

    下面是“Java开发之闹钟的实现代码”完整攻略: 一、准备工作 确定闹钟的功能需求,如:设定时间,响铃提示等; 选定合适的Java开发IDE,如Eclipse或IntelliJ IDEA; 确定使用的Java版本,本项目中使用Java 8。 二、项目搭建 新建Java项目,并创建一个Clock类; 创建一个定时器Timer,并设定定时任务,如下: timer…

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