用springboot写一个登录接口 要求有mapper层要求用注解写@Select ,查找的表为user,入参为username和password,并且写一个html界面,form组件进行登录请求提交
时间: 2024-05-10 18:21:41 浏览: 74
这道题目需要用到Spring Boot、MyBatis和Thymeleaf技术。
首先,我们需要创建一个名为“User”的实体类,用于表示用户信息:
```java
public class User {
private Long id;
private String username;
private String password;
// 省略getter和setter方法
}
```
然后,我们需要创建一个用于访问数据库的Mapper接口,使用@Select注解查询用户信息:
```java
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE username=#{username} AND password=#{password}")
User findByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
}
```
接下来,我们需要创建一个用于处理登录请求的Controller类,使用POST请求接收用户名和密码,调用Mapper接口查询用户信息,如果查询结果不为空,说明登录成功,否则登录失败:
```java
@Controller
public class LoginController {
@Autowired
private UserMapper userMapper;
@PostMapping("/login")
public String login(@RequestParam String username, @RequestParam String password, Model model) {
User user = userMapper.findByUsernameAndPassword(username, password);
if (user != null) {
model.addAttribute("username", username);
return "success";
} else {
model.addAttribute("error", "用户名或密码错误");
return "login";
}
}
}
```
最后,我们需要创建一个用于显示登录界面的HTML页面,使用Thymeleaf模板引擎,使用form组件接收用户名和密码,提交登录请求:
```html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<form method="post" action="/login">
<div>
<label>用户名</label>
<input type="text" name="username"/>
</div>
<div>
<label>密码</label>
<input type="password" name="password"/>
</div>
<div>
<button type="submit">登录</button>
</div>
<div th:text="${error}"></div>
</form>
</body>
</html>
```
当用户提交登录请求时,会调用LoginController的login方法,该方法会根据用户名和密码调用UserMapper查询用户信息,如果查询结果不为空,则表示登录成功,返回success页面,否则表示登录失败,返回login页面并显示错误提示信息。在success页面中,我们可以显示欢迎信息,例如“欢迎您,xxx!”。
这就是用Spring Boot、MyBatis和Thymeleaf实现登录功能的全部代码。
阅读全文