spring与mybatis整合完成注册和登录
时间: 2024-02-03 13:14:38 浏览: 26
首先,在Spring中配置MyBatis需要引入以下依赖:
```xml
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
```
接着,我们需要创建一个数据库表,存储用户的信息,包括用户名和密码。
```sql
CREATE TABLE `user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) DEFAULT NULL,
`password` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
```
然后,我们需要在Spring中配置数据源和MyBatis的Mapper文件位置:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*.xml
```
其中,`url`、`username`、`password`分别是数据库连接信息,`driver-class-name`是数据库驱动的类名,`mapper-locations`是Mapper文件的位置。
接下来,我们需要创建一个User实体类和对应的Mapper接口:
```java
public class User {
private int id;
private String username;
private String password;
// getter and setter
}
public interface UserMapper {
User findByUsername(String username);
void save(User user);
}
```
其中,`findByUsername()`方法用于根据用户名查询用户信息,`save()`方法用于保存用户信息。
最后,我们需要编写对应的Service和Controller类:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User findByUsername(String username) {
return userMapper.findByUsername(username);
}
@Override
public void save(User user) {
userMapper.save(user);
}
}
@RestController
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/login")
public String login(@RequestParam("username") String username,
@RequestParam("password") String password) {
User user = userService.findByUsername(username);
if (user == null) {
return "用户不存在";
} else if (!user.getPassword().equals(password)) {
return "密码错误";
} else {
return "登录成功";
}
}
@PostMapping("/register")
public String register(@RequestParam("username") String username,
@RequestParam("password") String password) {
User user = userService.findByUsername(username);
if (user != null) {
return "用户已存在";
} else {
user = new User();
user.setUsername(username);
user.setPassword(password);
userService.save(user);
return "注册成功";
}
}
}
```
其中,`UserService`接口定义了操作数据库的方法,`UserServiceImpl`实现了`UserService`接口,`UserController`中的`login()`方法用于处理登录请求,`register()`方法用于处理注册请求。
最后,我们需要编写对应的Mapper文件:
```xml
<?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.example.demo.mapper.UserMapper">
<select id="findByUsername" resultType="com.example.demo.entity.User">
select * from user where username = #{username}
</select>
<insert id="save" parameterType="com.example.demo.entity.User">
insert into user(username, password)
values(#{username}, #{password})
</insert>
</mapper>
```
其中,`namespace`是Mapper接口的全限定名,`select`标签用于查询用户信息,`insert`标签用于保存用户信息。
现在,我们就完成了Spring和MyBatis的整合,可以实现用户的注册和登录功能。