Spring Boot 集成 MyBatis Plus 请求流程详解:从 Controller 到数据库
当 Spring Boot 集成 MyBatis Plus 后,请求的流程通常如下:
- 用户发出请求,请求会先进入 Controller 层。
- Controller 层会调用 Service 层来处理请求。
- Service 层会调用 MyBatis Plus 提供的 Mapper 接口来进行数据库操作,例如查询数据、插入数据、更新数据等。
- MyBatis Plus 会自动生成 SQL 语句,并将结果封装为 Java 对象返回给 Service 层。
- Service 层将处理结果返回给 Controller 层。
- Controller 层再将结果返回给用户。
在这个流程中,MyBatis Plus 的作用是将 Java 对象和数据库表进行映射,提供了方便的 CRUD 操作,大大简化了数据库操作的流程。
服务层调用 MyBatis Plus 的方法
在 Spring Boot 集成 MyBatis Plus 中,Service 层可以通过注入 MyBatis Plus 提供的 Mapper 接口来进行数据库操作。
1. 注入 Mapper 接口
在 Service 层中声明一个 Mapper 接口的成员变量:
@Autowired
private UserMapper userMapper;
其中,UserMapper 是通过 MyBatis Plus 自动生成的 Mapper 接口,用于操作用户表。
2. 定义方法并使用 Mapper 接口进行数据库操作
在 Service 层中定义相应的方法,利用 Mapper 接口进行数据库操作:
public User getUserById(Long id) {
return userMapper.selectById(id);
}
public int addUser(User user) {
return userMapper.insert(user);
}
public int updateUser(User user) {
return userMapper.updateById(user);
}
public int deleteUser(Long id) {
return userMapper.deleteById(id);
}
上述方法分别用于查询、插入、更新和删除用户数据,通过调用 MyBatis Plus 提供的 Mapper 接口来完成相应的数据库操作。
使用继承方式
MyBatis Plus 提供了 ServiceImpl 类,它已经实现了常见的 CRUD 操作,可以直接继承使用。
@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student>
implements StudentService {
@Autowired
private StudentMapper studentMapper;
// 可以直接使用继承的方法
}
在上述代码中,我们定义了一个 StudentServiceImpl 的实现类,通过继承 MyBatis Plus 提供的 ServiceImpl 类,可以直接使用其中的 CRUD 操作。同时,我们也可以通过注入 StudentMapper 来进行自定义的数据库操作。
继承方法的示例
例如,我们可以这样实现一个 UserService:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
// ...
public User getUserById(Long id) {
return getById(id);
}
// ...
}
在上述代码中,我们直接继承了 MyBatis Plus 提供的 ServiceImpl 类,并指定了 Mapper 接口和对应的实体类。这样,我们就可以直接使用 ServiceImpl 中已经实现好的 CRUD 操作,例如查询一个用户:
public User getUserById(Long id) {
return getById(id);
}
在 getUserById() 方法中,我们直接调用 ServiceImpl 中的 getById() 方法,查询出指定 id 的用户。这样,我们就可以很方便地使用 MyBatis Plus 进行数据库操作。
原文地址: https://www.cveoy.top/t/topic/lB8e 著作权归作者所有。请勿转载和采集!