前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot(11):【详解】Spring Boot + Mybatis-Plus实现CRUD,轻松玩转接口操作!

Spring Boot(11):【详解】Spring Boot + Mybatis-Plus实现CRUD,轻松玩转接口操作!

作者头像
bug菌
发布2023-09-12 09:09:51
3380
发布2023-09-12 09:09:51
举报
代码语言:javascript
复制
环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

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添加依赖

代码语言:javascript
复制
    <!--mybatis-plus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>

示例截图如下:

image.png
image.png

3.2 配置数据库连接

在Spring Boot框架中,我们需要在application.properties或者application.yml文件中配置数据库连接信息。例如:

代码语言:javascript
复制
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语法配置。

image.png
image.png

其中,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相关的配置类,用于注入拦截器和分页插件。例如:

代码语言:javascript
复制
@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语句。例如:

代码语言:javascript
复制
@Repository
public interface UserMapper extends BaseMapper<User> {

}

在这里,我们定义了一个UserMapper接口,通过继承BaseMapper<User>接口,我们可以直接调用其中定义好的CRUD操作方法,例如insert、updateById、deleteById、selectById等方法。其中,User是我们定义的实体类。

3.5 编写Service层

在Service层中,我们需要注入Mapper接口,并编写具体的业务逻辑代码。例如:

代码语言:javascript
复制
@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层的代码之后,我们需要编写一些简单的测试用例来验证其正确性。例如:

代码语言:javascript
复制
@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层,完成对数据库中数据的增删改查操作。同时,本文还介绍了如何编写测试用例,确保代码的正确性。最后,我们对整个过程进行了总结,并针对可能遇到的问题给出了解决方案。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 前言
  • 2. 摘要
  • 3. 正文
    • 3.1添加依赖
      • 3.2 配置数据库连接
        • 3.3 配置Mybatis-Plus插件
          • 3.4 编写Mapper接口
            • 3.5 编写Service层
              • 3.6 编写测试用例
              • 4. 小结
              相关产品与服务
              云数据库 MySQL
              腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档