Spring MVC+mybatis实现注册登录功能

yizhihongxing

下面是关于“Spring MVC+MyBatis实现注册登录功能”的完整攻略,包含两个示例说明。

Spring MVC+MyBatis实现注册登录功能

在本文中,我们将介绍如何使用Spring MVC和MyBatis框架实现注册登录功能。

步骤1:添加依赖

首先,我们需要在pom.xml中添加Spring MVC和MyBatis的依赖。以下是一个简单的依赖示例:

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.8</version>
  </dependency>
  <dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.7</version>
  </dependency>
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
  </dependency>
</dependencies>

步骤2:配置数据源

接下来,我们需要在src/main/resources目录下创建一个名为application.properties的文件,并添加以下内容:

# 数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

在上面的配置文件中,我们使用了spring.datasource前缀来设置数据源的属性。

步骤3:配置MyBatis

接下来,我们需要在src/main/resources目录下创建一个名为mybatis-config.xml的文件,并添加以下内容:

<configuration>
  <typeAliases>
    <package name="com.example.model"/>
  </typeAliases>
  <mappers>
    <mapper resource="com/example/mapper/UserMapper.xml"/>
  </mappers>
</configuration>

在上面的配置文件中,我们使用了<typeAliases>元素来设置实体类的别名。我们还使用了<mappers>元素来指定MyBatis的映射文件。

步骤4:编写实体类

接下来,我们需要在src/main/java目录下创建一个名为com.example.model的包,并在该包中创建一个名为User的类,添加以下:

public class User {

  private Long id;
  private String username;
  private String password;

  // 省略getter和setter方法

}

在上面的示例中,我们创建了一个名为User的实体类,并定义了idusernamepassword三个属性。

步骤5:编写Mapper接口和映射文件

接下来,我们需要在src/main/java目录下创建一个名为com.example.mapper的包,并在该包中创建一个名为UserMapper的接口,添加以下内容:

public interface UserMapper {

  User findByUsername(String username);

  void save(User user);

}

在上面的示例中,我们创建了一个名为UserMapper的接口,并定义了findByUsernamesave两个方法。

接下来,我们需要在src/main/resources目录下创建一个名为com/example/mapper/UserMapper.xml的文件,并添加以下内容:

<mapper namespace="com.example.mapper.UserMapper">

  <select id="findByUsername" resultType="com.example.model.User">
    select * from user where username = #{username}
  </select>

  <insert id="save">
    insert into user (username, password) values (#{username}, #{password})
  </insert>

</mapper>

在上面的示例中,我们创建了一个名为UserMapper.xml的映射文件,并定义了findByUsernamesave两个SQL语句。

步骤6:编写Service和Controller

接下来,我们需要在src/main/java目录下创建一个名为com.example.service的包,并在该包中创建一个名为UserService的类,添加以下内容:

@Service
public class UserService {

  @Autowired
  private UserMapper userMapper;

  public User findByUsername(String username) {
    return userMapper.findByUsername(username);
  }

  public void save(User user) {
    userMapper.save(user);
  }

}

在上面的示例中,我们创建了一个名为UserService的服务类,并定义了findByUsernamesave两个方法。我们还使用了@Service注解标记这个类,并使用了@Autowired注解注入UserMapper对象。

接下来,我们需要在src/main/java目录下创建一个名为com.example.controller的包,并在该包中创建一个名为UserController的类,添加以下内容:

@Controller
public class UserController {

  @Autowired
  private UserService userService;

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

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

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

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

  @GetMapping("/home")
  public String home(HttpSession session) {
    User user = (User) session.getAttribute("user");
    if (user != null) {
      return "home";
    } else {
      return "redirect:/login";
    }
  }

}

在上面的示例中,我们创建了一个名为UserController的控制器,并定义了loginregisterhome三个方法。我们还使用了@Controller注解标记这个类,并使用了@Autowired注解注入UserService对象。我们还使用了@GetMapping@PostMapping注解来定义请求方法。我们还使用了HttpSession对象来保存用户信息。

示例1:登录功能

以下是一个示例,演示如何实现登录功能:

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

在上面的示例中,我们创建了一个名为login的HTML表单,并使用了<form>元素来定义表单。我们还使用了<input>元素来定义输入框,使用了<button>元素来定义提交按钮。

示例2:注册功能

以下是一个示例,演示如何实现注册功能:

<form action="/register" method="post">
  <div>
    <label for="username">用户名:</label>
    <input type="text" id="username" name="username">
  </div>
  <div>
    <label for="password">密码:</label>
    <input type="password" id="password" name="password">
  </div>
  <div>
    <button type="submit">注册</button>
  </div>
</form>

在上面的示例中,我们创建了一个名为register的HTML表单,并使用了<form>元素来定义表单。我们还使用了<input>元素来定义输入框,使用了<button>元素来定义提交按钮。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring MVC+mybatis实现注册登录功能 - Python技术站

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

相关文章

  • java获取当前日期和时间的二种方法分享

    当我们在Java程序中需要获取当前日期和时间时,通常可以使用下面两种常见的方式: 一、使用Java Date类(已过时) Java中的Date类已经被微软官方宣布过时了,不建议使用。不过,这里还是提供一下使用Date类获取当前日期和时间的方式: import java.util.Date; public class GetDateTimeExample { …

    Java 2023年5月20日
    00
  • java 如何复制非空对象属性值

    要复制Java对象的非空属性值,可以使用Java自带的BeanUtils.copyProperties方法或Apache Commons BeanUtils框架中的copyProperties方法。 下面分别展示使用这两种方法复制Java对象的非空属性值的示例: 使用Java自带的BeanUtils.copyProperties方法 import org.a…

    Java 2023年5月26日
    00
  • 五分钟解锁springboot admin监控新技巧

    五分钟解锁 Spring Boot Admin 监控新技巧 Spring Boot Admin 是一个用于监控和管理 Spring Boot 应用程序的开源项目。本文将介绍如何在 5 分钟内轻松启用和配置 Spring Boot Admin 监控。 步骤一:添加 Spring Boot Admin 依赖项 首先,需要添加以下 Spring Boot Admi…

    Java 2023年5月20日
    00
  • SpringBoot 如何使用Dataway配置数据查询接口

    下面是 SpringBoot 如何使用 Dataway 配置数据查询接口的攻略。 什么是 Dataway? Dataway 是由阿里巴巴集团开源的一款数据查询接口配置工具,它可以通过简单的配置生成符合 RESTful 风格的 HTTP 接口,从而快速完成前后端分离架构下的数据查询接口的开发。 SpringBoot 如何使用 Dataway 配置数据查询接口?…

    Java 2023年5月20日
    00
  • JSP 中response.setContentType()的作用及参数

    在 JSP 程序中,response.setContentType() 方法可以设置响应的MIME类型,MIME 类型全称是 Multipurpose Internet Mail Extensions,意为多用途互联网邮件扩展类型,它是一种标准,用来表示文档在网络传输中的格式,例如 HTML 页面可以使用 text/html,JPG 图片可以使用 image…

    Java 2023年6月15日
    00
  • 学会Java字节码指令,成为技术大佬

    学会Java字节码指令,成为技术大佬 什么是Java字节码指令? Java字节码指令是JVM(Java虚拟机)的指令集,用于执行Java程序。它是一种面向堆栈的指令集,包含了各种类型的指令,例如控制流指令、算数指令、类型转换指令等。学会Java字节码指令,对于深入理解Java语言、Java虚拟机以及性能优化都非常有帮助。 学习Java字节码指令的攻略 1. …

    Java 2023年5月23日
    00
  • Spring Boot的Controller控制层和页面

    Spring Boot是一个快速创建Web应用程序的框架,它提供了许多便捷的功能和工具,其中包括控制层和页面。控制层是Web应用程序的核心,它处理HTTP请求并返回响应。页面是Web应用程序的用户界面,它向用户展示数据和交互式元素。下面是详解Spring Boot的Controller控制层和页面的完整攻略: 创建控制器类 首先,我们需要创建一个控制器类来处…

    Java 2023年5月14日
    00
  • Java NIO写大文件对比(win7和mac)

    Java NIO(New I/O,也就是非阻塞 I/O)是 Java 1.4 提供的一种新的 I/O API,使得 Java 的 I/O 操作更加高效灵活。在处理大文件时,Java NIO 也有着比传统的 I/O 更好的性能优势。本文将介绍如何使用 Java NIO 写大文件,并对比在 Windows 7 和 macOS 系统上的性能差异。 准备工作 在开始…

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