SpringBoot+MyBatis实现登录案例

下面我就详细讲解一下“SpringBoot+MyBatis实现登录案例”的完整攻略。

准备工作

首先,我们需要准备好以下工具和环境:

  • Java开发环境(推荐使用Java 8或以上版本)
  • Maven项目管理工具
  • IDEA或Eclipse集成开发环境
  • MySQL数据库

创建Maven工程

使用IDEA或Eclipse创建一个Maven工程,项目结构如下:

project
|--src
|  |--main
|  |  |--java
|  |  |  |--com.example
|  |  |  |  |--Application.java
|  |  |--resources
|  |  |  |--application.properties
|  |  |  |--mapper
|  |  |  |  |--UserMapper.xml
|--pom.xml

其中,Application.java是Spring Boot应用程序入口,application.properties是Spring Boot应用程序配置文件,UserMapper.xml是MyBatis的Mapper。

配置文件

application.properties文件中,我们需要配置以下内容:

server.port=8080
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
mybatis.mapper-locations=classpath:mapper/*.xml

其中,server.port是应用程序的端口号,spring.datasource是数据库的配置信息,mybatis.mapper-locations是Mapper的存放路径。

数据库表结构

我们创建一个名为user的表,用于记录用户信息。表结构如下:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `username` varchar(32) NOT NULL COMMENT '用户名',
  `password` varchar(32) NOT NULL COMMENT '密码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

实体类及Mapper

我们创建一个名为User的实体类,用于表示用户信息。代码如下:

public class User {
    private Integer id;//主键ID
    private String username;//用户名
    private String password;//密码

    //省略getters和setters
}

接着,我们创建一个名为UserMapper的Mapper,用于操作数据库表user。代码如下:

@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user WHERE username = #{username} AND password = #{password}")
    User findUser(@Param("username") String username, @Param("password") String password);
}

服务层和控制层

接着,我们创建一个名为UserService的服务类,用于处理业务逻辑。代码如下:

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User findUser(String username, String password) {
        return userMapper.findUser(username, password);
    }
}

再创建一个名为UserController的控制器类,用于实现用户的登录功能。代码如下:

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public String login(String username, String password) {
        User user = userService.findUser(username, password);
        if (user == null) {
            return "登录失败";
        } else {
            return "登录成功";
        }
    }
}

这里我们使用了@RestController注解,表示该类是一个控制器类,同时返回值是字符串类型。

测试

现在,我们可以进行测试了。启动Spring Boot应用程序,访问"http://localhost:8080/login"时,会跳转到登录界面。

首先,我们需要在数据库中插入一个用户,如下所示:

INSERT INTO `user` (`id`, `username`, `password`) VALUES (1, 'admin', 'admin');

然后,使用Postman或其他工具发送一个POST请求,请求体中携带用户名和密码。例如,用户名为admin,密码为admin,请求如下:

POST http://localhost:8080/login
Content-Type: application/x-www-form-urlencoded

username=admin&password=admin

如果用户名和密码匹配,则控制台输出"登录成功",否则输出"登录失败"。

示例1:注册功能

在该工程中,我们增加一个名为RegisterController的控制器类,用于实现用户的注册功能。代码如下:

@RestController
public class RegisterController {
    @Autowired
    private UserService userService;

    @PostMapping("/register")
    public String register(String username, String password) {
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        int rows = userService.insertUser(user);
        if (rows > 0) {
            return "注册成功";
        } else {
            return "注册失败";
        }
    }
}

这里我们新增了一个insertUser方法,用于向数据库中插入用户信息。

UserService类中,增加该方法的实现:

public int insertUser(User user) {
    return userMapper.insertUser(user);
}

接着,在UserMapper接口中,增加该方法的声明:

@Insert("INSERT INTO user (username, password) VALUES (#{username}, #{password})")
int insertUser(User user);

现在,我们可以向"http://localhost:8080/register"发送一个POST请求,请求体中包含用户名和密码,例如:

POST http://localhost:8080/register
Content-Type: application/x-www-form-urlencoded

username=test&password=test

如果注册成功,则控制台输出"注册成功",否则输出"注册失败"。

示例2:查询所有用户

在该工程中,我们新增一个名为UserController的控制器类,用于查询所有用户。代码如下:

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/user")
    public List<User> getUser() {
        return userService.getUser();
    }
}

UserService类中,增加getUser方法的实现:

public List<User> getUser() {
    return userMapper.getUser();
}

UserMapper接口中,增加该方法的声明:

@Select("SELECT * FROM user")
List<User> getUser();

现在,我们可以向"http://localhost:8080/user"发送一个GET请求,即可获取所有用户信息。如果有多个用户,则返回一个包含所有用户信息的列表。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot+MyBatis实现登录案例 - Python技术站

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

相关文章

  • RocketMQ ConsumeQueue与IndexFile实时更新机制源码解析

    RocketMQ ConsumeQueue与IndexFile实时更新机制源码解析 RocketMQ是一个高性能、高可靠、可伸缩、分布式的消息中间件。在消息投递和消费的过程中,RocketMQ的ConsumeQueue与IndexFile起到了至关重要的作用,本篇文章将对其实时更新机制进行源码解析。 ConsumeQueue介绍 ConsumeQueue是R…

    Java 2023年5月20日
    00
  • Java字符串去除特殊字符内容的实例

    下面是Java字符串去除特殊字符内容的实例的完整攻略。 1. 确定需要去除的特殊字符 在进行字符串的特殊字符去除操作之前,需要先确定需要去除的特殊字符。常见的特殊字符有空格、制表符、换行符等。可以使用Java字符串的正则表达式进行匹配。 2. 使用replaceAll方法进行特殊字符去除 Java的字符串类中提供了replaceAll方法,可以使用正则表达式…

    Java 2023年5月27日
    00
  • Spring MVC全局异常处理和单元测试_动力节点Java学院整理

    Spring MVC是一种流行的Java Web框架,其拥有全局异常处理机制,可以在程序抛出异常后,统一处理并返回指定的错误信息。本篇攻略主要包含两部分内容,分别是Spring MVC全局异常处理和单元测试。 一、Spring MVC全局异常处理 1.1 在Spring配置文件中配置异常处理拦截器 在Spring的配置文件中,可以配置一个全局的异常处理拦截器…

    Java 2023年6月15日
    00
  • spring boot与kafka集成的简单实例

    下面是“Spring Boot与Kafka集成的简单实例”的攻略: 一、前置条件 在开始本教程之前,你需要做如下准备: 安装Java 8或更高版本 安装Kafka并启动Kafka服务 安装Maven 二、创建Spring Boot工程 首先,我们需要创建一个Spring Boot工程。这里我们使用Spring Initializr来创建一个最小化的Sprin…

    Java 2023年5月20日
    00
  • IDEA + Maven环境下的SSM框架整合及搭建过程

    以下是“IDEA + Maven环境下的SSM框架整合及搭建过程”的完整攻略: 一、环境准备 首先确认开发环境已经具备以下工具和组件: JDK Tomcat MySQL Maven IDEA 二、创建Maven项目 在IDEA中创建Maven项目,选择Spring Initializr模板,在GroupId中输入自定义的项目组织名称(如com.example…

    Java 2023年5月20日
    00
  • java网络通信技术之简单聊天小程序

    这里是关于“Java网络通信技术之简单聊天小程序”的完整攻略。 简介 本篇攻略将为大家介绍如何使用Java网络通信技术开发简单聊天小程序。 聊天小程序主要由客户端和服务端两个部分组成,它们之间通过网络通信进行交互。在Java中,可以使用Socket实现网络通信。 下面我们将由客户端和服务端两个方面详细讲解。 客户端 客户端主要负责向服务端发送信息,并接收服务…

    Java 2023年5月23日
    00
  • java基于数据库实现全局唯一ID的示例

    以下是“java基于数据库实现全局唯一ID的示例”的完整攻略及两条示例: 一、前置条件 在进行本教程之前,请确保以下条件已经满足: 你已熟悉Java编程语言,并且能够独立编写Java代码; 你已经安装了MySQL数据库,并掌握了基本操作; 你已经安装了Java开发环境和相关依赖库。 二、方案选择 目前常见的实现全局唯一ID的方案有雪花算法、UUID等。本教程…

    Java 2023年5月20日
    00
  • 一文带你认识Java中的Object类和深浅拷贝

    一文带你认识Java中的Object类和深浅拷贝 1. Object类 在Java中,所有的类都是从java.lang.Object类继承而来的。因此,java.lang.Object是Java中的祖先类,拥有以下常用的方法: equals(Object obj): 判断当前对象是否与参数obj相等,可以重写该方法来实现对象的比较 hashCode(): 返…

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