Spring Boot入门(12):【详解】Spring Boot + Mybatis-Plus实现CRUD,轻松玩转接口操作!
1. 前言
随着Java技术和开源社区的不断发展,现在已经有大量优秀的开源框架和工具可供我们使用。为了快速开发高质量的应用程序,选择合适的框架和工具是非常重要的。其中,Spring Boot是目前非常受欢迎的框架之一,它可以帮助我们快速构建和部署Spring应用程序。而Mybatis-Plus则是在Mybatis基础之上进行了增强和扩展,提供了更加简便的CRUD操作和更加优秀的性能表现。本文将介绍如何在Spring Boot框架中整合Mybatis-Plus,并实现接口的增删改查功能。
2. 摘要
本文主要介绍了在Spring Boot框架中整合Mybatis-Plus的方法和步骤,包括如何配置数据库连接和Mybatis-Plus插件,以及如何编写Mapper接口和Service层,完成对数据库中数据的增删改查操作。同时,本文还介绍了如何编写测试用例,确保代码的正确性。最后,本文对整个过程进行了总结,并针对可能遇到的问题给出了解决方案。
3. 正文
3.1添加依赖
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
示例截图如下:
3.2 配置数据库连接
在Spring Boot框架中,我们需要在application.properties或者application.yml文件中配置数据库连接信息。例如:
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
mybatis-plus.mapper-locations=classpath:mapper/*.xml
mybatis-plus.type-aliases-package=com.example.demo.entity
mybatis-plus.configuration.cache-enabled=false
或者你也可以按照yaml语法配置。
其中,spring.datasource开头的属性用于配置数据库连接,mybatis-plus开头的属性用于配置Mybatis-Plus插件。在这里,我们需要注意以下几点:
- 配置文件中的url、driver-class-name、username和password属性分别对应着数据库连接的URL、驱动类名、用户名和密码。连接URL中包含了数据库名称mybatis_plus_demo,这是我们在MySQL中预先创建好的数据库名称。
- mapper-locations属性用于配置Mapper XML文件的位置,由于我们采用的是Spring Boot的默认目录结构,因此可以将Mapper XML文件放置在resources/mapper目录下。
- type-aliases-package属性用于配置Mybatis-Plus中实体类的包名,这里我们将其设置为com.example.demo.entity。
- configuration.cache-enabled属性用于控制Mybatis-Plus在缓存中缓存SQL的执行结果,建议在开发阶段将其禁用。
3.3 配置Mybatis-Plus插件
在配置好数据库连接和Mybatis-Plus插件之后,我们还需要定义一个Mybatis-Plus相关的配置类,用于注入拦截器和分页插件。例如:
@Configuration
public class MybatisPlusConfig {
/**
* Mybatis-Plus SQL执行效率插件【生产环境可以关闭】
*/
@Bean
public PerformanceInterceptor performanceInterceptor() {
return new PerformanceInterceptor();
}
/**
* Mybatis-Plus分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
在这里,我们定义了两个Bean,分别是PerformanceInterceptor和PaginationInterceptor。PerformanceInterceptor是Mybatis-Plus提供的SQL执行效率插件,用于记录SQL执行时间等信息,建议只在开发阶段使用。而PaginationInterceptor则是Mybatis-Plus提供的分页插件,在进行分页查询操作时非常实用。
3.4 编写Mapper接口
在Mybatis-Plus中,我们可以通过继承BaseMapper接口来快速创建Mapper接口,无需手动编写增删改查的SQL语句。例如:
@Repository
public interface UserMapper extends BaseMapper<User> {
}
在这里,我们定义了一个UserMapper接口,通过继承BaseMapper<User>接口,我们可以直接调用其中定义好的CRUD操作方法,例如insert、updateById、deleteById、selectById等方法。其中,User是我们定义的实体类。
3.5 编写Service层
在Service层中,我们需要注入Mapper接口,并编写具体的业务逻辑代码。例如:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public boolean save(User user) {
return userMapper.insert(user) > 0;
}
@Override
public boolean update(User user) {
return userMapper.updateById(user) > 0;
}
@Override
public boolean delete(Long id) {
return userMapper.deleteById(id) > 0;
}
@Override
public User getById(Long id) {
return userMapper.selectById(id);
}
@Override
public List<User> list() {
return userMapper.selectList(null);
}
}
在这里,我们定义了一个UserServiceImpl类,实现了UserService接口。在不同的业务方法中,我们可以直接调用Mapper接口中定义的CRUD操作方法,完成对数据库中数据的增删改查操作。
3.6 编写测试用例
在编写完Mapper接口和Service层的代码之后,我们需要编写一些简单的测试用例来验证其正确性。例如:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisPlusDemoApplicationTests {
@Autowired
private UserService userService;
@Test
public void save() {
User user = new User();
user.setName("John");
user.setAge(20);
Assert.assertTrue(userService.save(user));
}
@Test
public void update() {
User user = userService.getById(1L);
user.setAge(21);
Assert.assertTrue(userService.update(user));
}
@Test
public void delete() {
Assert.assertTrue(userService.delete(1L));
}
@Test
public void getById() {
User user = userService.getById(1L);
Assert.assertNotNull(user);
}
@Test
public void list() {
List<User> userList = userService.list();
Assert.assertNotNull(userList);
}
}
在这里,我们定义了一个MybatisPlusDemoApplicationTests测试类,通过注入UserService接口,调用其中定义的业务方法,完成对数据库中数据的增删改查操作。在每个测试方法中,我们使用JUnit提供的Assert类,判断方法的返回值是否正确。
4. 小结
本文主要介绍了在Spring Boot框架中整合Mybatis-Plus的方法和步骤,包括如何配置数据库连接和Mybatis-Plus插件,以及如何编写Mapper接口和Service层,完成对数据库中数据的增删改查操作。同时,本文还介绍了如何编写测试用例,确保代码的正确性。最后,我们对整个过程进行了总结,并针对可能遇到的问题给出了解决方案。
关于我
我是bug菌,CSDN | 阿里云 | 华为云 | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。
- 点赞
- 收藏
- 关注作者
评论(0)