SpringBoot项目将mybatis升级为mybatis-plus的方法

下面是详细讲解 SpringBoot 项目将 Mybatis 升级为 Mybatis-Plus 的方法:

一、前置准备

1. 项目环境

SpringBoot版本:2.5.1

Mybatis版本:3.5.4

2. 引入依赖

在项目 pom.xml 中的 dependencies 中,加入以下依赖:

<!-- Mybatis-plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.3.1</version>
</dependency>

同时也需要注释掉原本的 Mybatis 依赖,因为 Mybatis-Plus 依赖中已经包括了 Mybatis 的依赖:

<!-- Mybatis -->
<!-- <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency> -->

3. 配置 Mybatis-Plus

在 application.yml(或者 application.properties) 配置文件中,添加以下配置:

mybatis-plus:
  # 指定 xml 文件路径
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  # 实体类命名规范,使用驼峰命名规则
  global-config:
    db-config:
      column-underline: false
      table-underline: false
      # 下划线转驼峰命名规则
      # logic-delete-field: deleted
      # logic-delete-value: 1
      # logic-not-delete-value: 0
      # 逻辑删除配置

至此,准备工作完成。

二、升级方法

1. 修改 Mapper

在原本的 Mapper 接口上加上 @Mapper 注解(或者在 MapperScan 的扫描包中扫描到该接口),然后修改这个接口继承 Mapper,并且增加一些 Mybatis-Plus 提供的接口。

下面是一个示例:

@Mapper
public interface UserMapper extends BaseMapper<User> {
    // Mybatis-Plus 提供的 selectById 方法
    User selectById(Long id);
}

Mybatis-Plus 的 BaseMapper 接口中包含了基本的 CRUD 操作,还有一些常用的方法,例如 insertBatch、selectList 等等,具体可以查看官方文档。

2. 修改 Service

  • Service 接口的实现

修改 Service 接口的实现,将原本的 Mybatis 操作改为 Mybatis-Plus 操作。

下面是一个示例:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    // Mybatis-Plus 提供的 selectById 方法
    @Override
    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }
}
  • 分页查询

Mybatis-Plus 中的分页查询与 Mybatis 中一样,都需要在调用接口时传入分页参数 Page,同时还可以使用 QueryWrapper(查询条件包装器)进行查询过滤。

下面是一个示例:

@Override
public IPage<User> getUserList(int pageNum, int pageSize, String name) {
    // 构建分页参数
    Page<User> page = new Page<>(pageNum, pageSize);

    // 构建查询条件
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.like("name", name);

    return userMapper.selectPage(page, queryWrapper);
}

3. 示例

下面是一个完整的示例:

/**
 * User 数据库操作类
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {
    // Mybatis-Plus 提供的 selectById 方法
    User selectById(Long id);
}


/**
 * User 业务接口类
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    // Mybatis-Plus 提供的 selectById 方法
    @Override
    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }

    @Override
    public IPage<User> getUserList(int pageNum, int pageSize, String name) {
        // 构建分页参数
        Page<User> page = new Page<>(pageNum, pageSize);

        // 构建查询条件
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("name", name);

        return userMapper.selectPage(page, queryWrapper);
    }
}

/**
 * User 控制器类
 */
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/user/{id}")
    public User getUserById(@PathVariable("id") Long id) {
        return userService.getUserById(id);
    }

    @GetMapping("/user/list")
    public IPage<User> getUserList(@RequestParam("pageNum") int pageNum,
                                   @RequestParam("pageSize") int pageSize,
                                   @RequestParam("name") String name) {
        return userService.getUserList(pageNum, pageSize, name);
    }
}

至此,完整的 SpringBoot 项目将 Mybatis 升级为 Mybatis-Plus 的方法已经讲解完毕。

阅读剩余 74%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目将mybatis升级为mybatis-plus的方法 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java之Class.forName()用法案例详解

    当我们在Java程序中需要动态加载一个类时,可以使用Class.forName()方法。Class.forName()方法可以根据完整类名动态加载类,并返回对应的Class对象。在本文中,我们将详细介绍Class.forName()方法的用法,并提供两个实用案例。 Class.forName()方法的用法 Class.forName()方法可以根据完整类名动…

    Java 2023年5月20日
    00
  • 算法系列15天速成 第八天 线性表【下】

    算法系列15天速成 第八天 线性表【下】完整攻略 前言 在线性表【上】的基础上,我们再来讲一些新的线性表特性及其相关算法。 栈 栈是一种特殊的线性表,只能在表尾插入和删除数据,简单来说就是类似于装东西的箱子。它有以下几个特点: 先进后出,后进先出,即最先入栈的元素最后出栈; 只能在表尾插入和删除数据,元素的加入和删除只发生在栈顶。 栈的应用 递归; 计算器;…

    Java 2023年5月31日
    00
  • Java编程接口回调一般用法代码解析

    让我来为你详细讲解“Java编程接口回调一般用法代码解析”的攻略。 什么是Java编程接口回调 Java编程接口回调是一种常见的编程思想,它将一个方法作为参数传递给另一个方法,以使后者在适当的时候调用前者。这种思想可以被认为是一种事件驱动或翻转控制的编程范式,因为它允许调用者通知被调用者,而不是被调用者直接调用另一个方法。 Java编程接口回调的一般用法 J…

    Java 2023年5月23日
    00
  • springboot-jpa的实现操作

    下面是对“springboot-jpa的实现操作”的完整攻略。 一、概述 Spring Boot是一个快速开发框架,提供了很多快捷而且方便的配置方式,其中对JPA的支持也是非常好的。本攻略将介绍如何使用Spring Boot进行JPA的实现操作。 二、前提条件 在继续之前,你需要确保以下条件已满足: 你已经掌握了基本的Spring Boot使用; 你已经安装…

    Java 2023年5月20日
    00
  • JAVA CountDownLatch(倒计时计数器)用法实例

    JAVA CountDownLatch(倒计时计数器)用法实例 什么是 CountDownLatch CountDownLatch(倒计时计数器)是 Java 提供的一个同步工具类,通过它可以让一个或多个线程等待其它线程完成各自的工作后再继续执行。 在 CountDownLatch 中,我们可以设置一个计数器的初始值 n,然后调用 countDown() 方…

    Java 2023年5月20日
    00
  • 在Java Spring框架中使用的设计模式有哪些

    在Java Spring框架中,常用的设计模式包括以下几种: 工厂模式 工厂模式是一种创建型设计模式,可以通过工厂方法或抽象工厂创建对象。在Spring中,常用的工厂模式包括BeanFactory和ApplicationContext接口。BeanFactory是一个接口,它提供了一种获取Bean的机制。ApplicationContext是BeanFact…

    Java 2023年5月19日
    00
  • Java创建线程的两种方式

    当需要创建线程时,Java提供了两种方式:使用Thread类创建线程和实现Runnable接口创建线程。下面我们分别讲解这两种方式的使用方法。 1. 使用Thread类创建线程 Thread类是Java中用于创建和操作线程的基本类。使用Thread类创建线程可以直接关联想要启动的线程代码,并通过start()方法启动新线程。 示例1:继承Thread类创建线…

    Java 2023年5月18日
    00
  • 详解Java中的防抖和节流

    Title: 详解Java中的防抖和节流 防抖和节流是前端开发中常用的优化方式,可以避免用户输入事件过于频繁导致页面性能下降。在Java开发中,同样可以使用这两种技术进行优化。 什么是防抖和节流 防抖 防抖是指在用户进行操作时,只有停止操作一段时间后才会触发事件并进行相应操作。这种方式可以避免用户频繁地触发事件导致页面反应缓慢,同时也可以避免一些不必要的重复…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部