springboot+mybatis实现登录注册前后端交互
时间: 2023-06-27 19:08:12 浏览: 117
要实现登录注册前后端交互,可以按照以下步骤进行:
1. 创建一个SpringBoot项目,可以使用Spring Initializr来快速创建。
2. 添加MyBatis依赖,可以在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
```
3. 创建数据库表,用于存储用户信息,例如用户ID、用户名、密码等。
4. 创建实体类,用于映射数据库表的字段。
5. 创建Mapper接口,用于定义SQL语句,可以使用注解方式或XML方式。
6. 创建Service层,用于调用Mapper接口,并对返回结果进行处理。
7. 创建Controller层,用于处理前后端交互,接收前端请求参数,并调用Service层进行处理,并返回相应结果给前端。
下面是一个简单的登录注册示例(以注解方式使用MyBatis):
User.java
```
public class User {
private int id;
private String username;
private String password;
// ...
// getters and setters
}
```
UserMapper.java
```
@Mapper
public interface UserMapper {
@Select("SELECT * FROM user WHERE username = #{username} AND password = #{password}")
User selectUserByUsernameAndPassword(@Param("username") String username, @Param("password") String password);
@Insert("INSERT INTO user (username, password) VALUES (#{username}, #{password})")
int insertUser(User user);
}
```
UserService.java
```
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public User login(String username, String password) {
return userMapper.selectUserByUsernameAndPassword(username, password);
}
public int register(User user) {
return userMapper.insertUser(user);
}
}
```
UserController.java
```
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public Result login(@RequestParam("username") String username, @RequestParam("password") String password) {
User user = userService.login(username, password);
if (user != null) {
return Result.success("登录成功", user);
} else {
return Result.fail("用户名或密码错误");
}
}
@PostMapping("/register")
public Result register(@RequestBody User user) {
int result = userService.register(user);
if (result > 0) {
return Result.success("注册成功", user);
} else {
return Result.fail("注册失败");
}
}
}
```
在上述示例中,我们定义了一个UserController类,用于处理前后端交互。其中,@RestController注解用于标记该类为RESTful服务,@PostMapping注解用于标记该方法接收POST请求,@RequestParam注解用于接收请求参数,@RequestBody注解用于接收请求体中的参数。
最后,我们需要定义一个Result类,用于封装返回结果:
```
public class Result {
private int code;
private String message;
private Object data;
// ...
// getters and setters
}
```
通过封装Result类,我们可以统一返回结果的格式和内容,方便前端进行处理。
阅读全文