用 SpringBoot+Mybatis 框架实现用户的登录,要求用户名和密码事先保存在数据库中
用 SpringBoot+Mybatis 框架实现用户的登录,要求用户名和密码事先保存在数据库中
·
用
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即可
登录数据库中的账号密码
以上用到的代码就这些
更多推荐
已为社区贡献1条内容
所有评论(0)