SpringBoot+Mybatis 框架实现用户的登录,要求用户名和密码事先保存在数据库
创建

然后 

 

 我们需要创建这样的结构

实现代码如下(banner.txt是不必要的)可以改变运行时的图像,可以在线找banner的图像自己还一下

 

 实现效果:

 下面才是真正的代码演示

UserController.java
package com.chen.controller;

import com.chen.pojo.User;
import com.chen.service.UserService;
import com.chen.service.UserService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;


@Controller
public class UserController {

    // 注入Service接口对象
    @Resource
    UserService usersService;

    // 设置默认跳转页面
    @RequestMapping("/")
    public String index() {
        return "login";
    }
    @PostMapping("/login")
    public String login(@RequestParam("username") String username, @RequestParam("password") String password) {
        User user = usersService.login(new User(null,username,password));
        if (user != null) {
            // 判断用户名和密码是否一致
            if (user.getUserName().equals(username) && user.getPassword().equals(password)) {
                // 成功跳转到success页面
                return "loginSuccess";
            }
        }
        // 失败就回到登录页面
        return "login";
    }
}
UserMapper.java
package com.chen.mapper;

import com.chen.pojo.User;
import org.apache.ibatis.annotations.Mapper;


@Mapper
public interface UserMapper {

    User userLogin(String username, String password);
}
User.java
package com.chen.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
//以下两个注释就是那个无参构造那些,就是标准的Javabean@NoArgsConstructor和@AllArgsConstructor来替代了些东西使得
//代码比较简洁
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String userName;
    private String password;
}
UserService.java
package com.chen.service;

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


@Service
public class UserService {

    //autowire:可以对类成员变量、方法以及构造函数进行标注,完成自动装配工作
    @Autowired
    UserMapper userMapper;//用接口名定义变量:这只是一个接口的引用,接口不能实例化对象,而接口的引用指向的是实现了接口方法的类的实例化对象。
    // 登录操作
    public User login(User user) {
        User u = this.userMapper.userLogin(user.getUserName(),user.getPassword());
            return u;
    }
}

UserMapper.java

<?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.chen.mapper.UserMapper">

    <select id="userLogin" resultType="User">
        select * from 自己的表名 where username = #{username} and password = #{password}
    </select>
</mapper>

login.html

<!DOCTYPE html>
<html lang="en" >
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
<div align="center">
<form action="/login"  method="post" class="bd">
    账号:<input type="text" name="username">
    <br/>
    密码:<input type="password" name="password">
    <br/>
    <br/>
    <input type="submit" value="登录">
</form>
</div>
</body>
</html>

loginSuccess.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录成功</title>
</head>
<body>
<div align="center"><h1>登录成功</h1></div>
</body>
</html>

application.properties(官方推荐使用yml,其实都差不多,我这里使用properties,properties是键值对类型,yml是要隔一个空格的那种,自行了解,比较简单

application.properties

spring.datasource.username=root
#Mysql密码
spring.datasource.password=aa12345678
#认真看看改一下book是我的数据库名
spring.datasource.url=jdbc:mysql://localhost:3306/book?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.type-aliases-package=com.chen.pojo
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

以上用到的代码就这些,下面是演示效果

只需要输入localhost:8080即可

登录数据库中的账号密码

以上用到的代码就这些 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐